免费注册 查看新帖 |

Chinaunix

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

请教各位大侠:修改文件某个域为等差数列问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-28 19:33 |只看该作者 |倒序浏览
有文件内容如下:
xxxx|xxxxx|xxxxxx|1254
xxxx|xxxxx|xxxxxx|25
xxxx|xxxxx|xxxxxx|268
........

现想将最后一列替换,等差数列,首个值可以制定,替换后如下:

xxxx|xxxxx|xxxxxx|0001
xxxx|xxxxx|xxxxxx|0002
xxxx|xxxxx|xxxxxx|0003
........

自己写了段awk,没达到目的,请各位指点一下:) 多谢!

论坛徽章:
0
2 [报告]
发表于 2006-10-28 20:37 |只看该作者

  1. awk -F'|' '{printf( "%s|%s|%s|%4d\n",$1,$2,$3,++a)}' YourFile | sed 's/ /0/g'
复制代码

如果你前3栏中的资料都没空格的话,可以用看看

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2006-10-28 20:45 |只看该作者
原帖由 vantien 于 2006-10-28 20:37 发表

  1. awk -F'|' '{printf( "%s|%s|%s|%4d\n",$1,$2,$3,++a)}' YourFile | sed 's/ /0/g'
复制代码

如果你前3栏中的资料都没空格的话,可以用看看

awk -F'|' '{printf( "%s|%s|%s|%04d\n",$1,$2,$3,++a)}' YourFile

论坛徽章:
0
4 [报告]
发表于 2006-10-28 20:47 |只看该作者
呵呵, 还是烈火牛呀.
我的脑筋总是不轮转 :>

论坛徽章:
0
5 [报告]
发表于 2006-10-28 22:24 |只看该作者
多谢两位:)
自己加了个对a的赋值,可以调整初始值:
awk -F'|' 'BEGIN{a = 1001}{printf("%s|%s|%04d\n",$1,$2,++a)}' myfile

shell果然很有趣,学习ING
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP