免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1213 | 回复: 2
打印 上一主题 下一主题

再请教个问题,总试不出来! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 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

请问如何解决比较好?

论坛徽章:
0
2 [报告]
发表于 2006-06-21 22:19 |只看该作者
对了,依次第2列,第3列........等长度也变了,再说详细点,也就是如何把几列带有空格的数据,按照新的定长输出来。是先把每列空格去掉,生成一个中间文件后,再按照新的长度输出来,还是有什么直接办法解决比较好呢?


上面帖子b.txt文件格式发上去,长度格式变乱了。要输出来的格式相对没变乱,大家明白这个意思就行,

论坛徽章:
0
3 [报告]
发表于 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP