- 论坛徽章:
- 0
|
将如下格式的文字:
昔有佳人公孙氏,一舞剑器动四方。
观者如山色沮丧,天地为之久低昂。
霍如羿射九日落,矫如群帝骖龙翔。
来如雷霆收震怒,罢如江海凝清光。
绛唇珠袖两寂寞,晚有弟子传芬芳。
临颍美人在白帝,妙舞此曲神扬扬。
与余问答既有以,感时抚事增惋伤。
先帝侍女八千人,公孙剑器初第一。
五十年间似反掌,风尘鸿洞昏王室。
梨园子弟散如烟,女乐余姿映寒日。
金粟堆前木已拱,瞿塘石城草萧瑟。
玳筵急管曲复终,乐极哀来月东出。
老夫不知其所往,足茧荒山转愁疾。
转换成 :
老玳金梨五先与临绛来霍观昔
夫筵粟园十帝余颍唇如如者有
不急堆子年侍问美珠雷羿如佳
知管前弟间女答人袖霆射山人
其曲木散似八既在两收九色公
所复已如反千有白寂震日沮孙
往终拱烟掌人以帝寞怒落丧氏
,,,,,,,, ,,,,,
足乐瞿女风公感妙晚罢矫天一
茧极塘乐尘孙时舞有如如地舞
荒哀石余鸿剑抚此弟江群为剑
山来城姿洞器事曲子海帝之器
转月草映昏初增神传凝骖久动
愁东萧寒王第惋扬芬清龙低四
疾出瑟日室一伤扬芳光翔昂方
。。。。。。。。。。。。。
代码如下,已完成中英文混排的问题,解决方法比较粗糙,希望大家指正
- BEGIN {FS=""}
- {
- i=1;
- j=1;
- while (i<=NF)
- {
- if ($i ~ /[ -~]/)
- {#非中文字符后面补一个空格,使其和中文字符占位一致
- Filds[j,NR]=$i" ";
- i++;
- }
- else
- {#我的机器上一个汉字用三位编码表示,所以串接三个字段
- Filds[j,NR]=$i""$(i+1)""$(i+2);
- i+=3;
- }
- j++;
- }
- maxNF=(maxNF<j)?(j-1):maxNF;
- }
- END {
- for(i=1;i<=maxNF;i++)
- {
- for(j=NR;j>=1;j--)
- if (Filds[i,j]=="")
- printf(" ")
- else
- printf("%s",Filds[i,j]);
- printf("\n");
- }
- }
复制代码
[ 本帖最后由 jinl 于 2008-1-11 20:05 编辑 ] |
|