免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: max5
打印 上一主题 下一主题

如何才能格式化输出一个文本文件 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-03-15 20:45 |只看该作者
原始数据是一行的 几十兆的整个文件一行。。。
然后输出时候要根据位数进行格式和换行,位数是定长的

论坛徽章:
0
12 [报告]
发表于 2010-03-15 20:45 |只看该作者
我刚才20:16启动的脚本
到现在 输入文件20M
输出的文件才生成到370K 用tail看了下 进度好慢。

论坛徽章:
0
13 [报告]
发表于 2010-03-15 21:00 |只看该作者
在考虑sed awd之间的效率 在大数据量时候那个更加好

论坛徽章:
0
14 [报告]
发表于 2010-03-15 22:28 |只看该作者
#处理效率低,小数据量可以考虑
        sed 's/./&\n/18;' test | sed '1!{s/./&,/4;s/./&,/15;s/./&,/24;s/./&,/35;s/./&,/46;s/./&,/49;s/./&,/58;s/./&,/64;s/./&,/67;s/./&,/70;s/./&,/73;s/./&,/75;s/./&,/90;s/./&,/99;s/./&,/105;s/./&,/110;s/./&\n/119;D}' >tmp.txt

        #处理效率高,小数据量可以考虑 6601报文
        sed 's/./&\n/18;' test1.txt |fold -w 103 |sed '1!{s/./&,/4;s/./&,/15;s/./&,/24;s/./&,/35;s/./&,/46;s/./&,/49;s/./&,/58;s/./&,/64;s/./&,/67;s/./&,/70;s/./&,/73;s/./&,/75;s/./&,/90;s/./&,/99;s/./&,/105;s/./&,/110;D}' >tmp.txt

自己搞定了
处理后的数据 成功的在2min里面输出30w行,原来时一行的。
有没有更加提高效率的方法呢

论坛徽章:
0
15 [报告]
发表于 2010-03-16 11:41 |只看该作者
fold -w 103   多加了这个有什么不同?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP