免费注册 查看新帖 |

Chinaunix

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

文本内容转换! [复制链接]

论坛徽章:
0
61 [报告]
发表于 2004-11-16 08:52 |只看该作者

文本内容转换!

[quote]测试如下:
#cat 1.txt
6058680012000123456|0010020|
6058680022200123450|0005000|
#nawk 'BEGIN { FS = OFS = "|" }{ $1 = NR; $3 = sprintf("%d", $3); printf("%s||||\n", $0) }' 1.txt
1|0010020|0||||
2|0005000|0||||


兄弟,在源文件少了一个《 | 》执行的结果就是这样的。看来我的程序是正确的,你可能做的太累了,把《 | 》加全了,再做一次,应该可以的。
|6058680012000123456|0010020|
|6058680022200123450|0005000|

论坛徽章:
0
62 [报告]
发表于 2004-11-16 11:47 |只看该作者

文本内容转换!

全 sed 版本:

sed 's/\(.|\)0*/\1/;s/$/||||/' datafile|sed =|sed 'N;s/\n//'

论坛徽章:
0
63 [报告]
发表于 2004-11-16 23:05 |只看该作者

文本内容转换!

原帖由 "begincwcw" 发表:


兄弟,在源文件少了一个《 | 》执行的结果就是这样的。看来我的程序是正确的,你可能做的太累了,把《 | 》加全了,再做一次,应该可以的。
|6058680012000123456|0010020|
|6058680022200123450|0005000|



噢,sorry,是少了"|",如果加上是可以,不加就不可以.你也看过前面各位的脚本了,你能解释一下你的语句吗?

论坛徽章:
0
64 [报告]
发表于 2004-11-16 23:07 |只看该作者

文本内容转换!

原帖由 "lightspeed" 发表:
全 sed 版本:

sed 's/\(.|\)0*/\1/;s/$/||||/' datafile|sed =|sed 'N;s/\n//'


如果我在前面少了"|"也是不行,你也来解释一下你全SED版本的高招吧.

论坛徽章:
0
65 [报告]
发表于 2004-11-16 23:19 |只看该作者

文本内容转换!

begincwcw和lightspeed两位大虾几本上能达到所要的内容,但这里我还引出来一个问题,就是在所有转出来的文件头第一行写上记录的总数,和第二列(也就是去0的这一列)所有数字相加的和.
例如下:
原文件内容:
6058680012000123456|0010020|
6058680022200123450|0005000|
6058680022200123450|0005000|
转换后文件内容:
3|20020||||||||
1|6058680012000123456|10020|
2|6058680022200123450|5000|
3|6058680022200123450|5000|

谢谢!

论坛徽章:
0
66 [报告]
发表于 2004-11-17 08:52 |只看该作者

文本内容转换!

兄弟,给你些建议:
1、找一本书看看基础知识。
2、多看看各位前辈的贴子,不出一个月,你什么都看的懂了。
3、你要求的问题,搜一下,多如牛毛。

nawk 'BEGIN { FS = OFS = "|"}{ sum += $3 }END{ printf("%s%s||||||||\n", NR, sum)}' filename

论坛徽章:
0
67 [报告]
发表于 2004-11-17 09:21 |只看该作者

文本内容转换!

原帖由 "begincwcw" 发表:
兄弟,给你些建议:
1、找一本书看看基础知识。
2、多看看各位前辈的贴子,不出一个月,你什么都看的懂了。
3、你要求的问题,搜一下,多如牛毛。

nawk 'BEGIN { FS = OFS = "|"}{ sum += $3 }END{ printf("%s..........


呵呵!多谢你的建议,我就是在学习中,这是我自己碰到不能解决才求助于各位大虾!!!同时也希望得各位的指导!!!在学习中进步,在进步中求精!!!再次感谢各位!

论坛徽章:
0
68 [报告]
发表于 2004-11-18 00:03 |只看该作者

文本内容转换!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP