Chinaunix

标题: 再请教个问题,总试不出来! [打印本页]

作者: ddd123456    时间: 2006-06-21 22:12
标题: 再请教个问题,总试不出来!
b.txt有多列数据,每列前有空格,每列长度是定长的,不够长度的用空格补前面(也就是右对齐)格式如下:
0------6-------8--------12---------18
-----------------------------------------
     11:     4:       45:         6
         2 :     7:        8:         9
-------
如何把上面列的数据按照新的格式表示出来,也就是显示出来的数据每列长度就有变化了,不够长度照样用空格表示,如上面第一列长度是6,而下面要显示的第一列长度就是4,而不是直接取上面列的长度6显示,如下格式:
0---4-----7-------10--------15         
------------------------------------------
   11:     4:      45:           6
     2:     7:       8:            9

请问如何解决比较好?
作者: ddd123456    时间: 2006-06-21 22:19
对了,依次第2列,第3列........等长度也变了,再说详细点,也就是如何把几列带有空格的数据,按照新的定长输出来。是先把每列空格去掉,生成一个中间文件后,再按照新的长度输出来,还是有什么直接办法解决比较好呢?


上面帖子b.txt文件格式发上去,长度格式变乱了。要输出来的格式相对没变乱,大家明白这个意思就行,
作者: jixunuli    时间: 2006-06-22 13:28
标题: 回复 1楼 ddd123456 的帖子
用awk很简单

$ cat test.txt
     11     4       45         6
      2     7        8         9

$ cat test.txt | awk '{printf("%3d,%3d,%3d,%3d\n", $1, $2, $3, $4)}'
11,  4, 45,  6
  2,  7,  8,  9




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2