免费注册 查看新帖 |

Chinaunix

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

文本处理问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-07-01 16:28 |只看该作者
原帖由 blackold 于 2009-7-1 13:35 发表
改一下啊|sed '/^[0-9]\+/s//ASN1.1,None,&,5,N2603BBOO,20090629 22:25,SZ,TX,DHL,None,AU00123474/'



ASN1.1,None,&,5,N2603BBOO,20090629 22:25,SZ,TX,DHL,None,AU00123474 这一串数字一直会变,能用变量代替吗?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
12 [报告]
发表于 2009-07-01 16:29 |只看该作者

回复 #11 dashorc 的帖子

如何变法?你要说清楚。

论坛徽章:
0
13 [报告]
发表于 2009-07-01 16:35 |只看该作者
原帖由 blackold 于 2009-7-1 16:29 发表
如何变法?你要说清楚。


我换个简单的例子:
有两个目录dir1 dir2
dir1下面的文件:
cat file1
ASN,1,123,hello
456
789

cat file2
111
222
333

cat file3
999
888
777

dir2下面的文件:
cat file1
SSS,1,SZ456,HAHA
SZ123
SZ555

cat file2
SZ789
SZ222

每个目录下面分别进行替换,也就是dir1下面生成一个文件:
ASN,1,123,hello
ASN,1,456,hello
ASN,1,789,hello
ASN,1,111,hello
ASN,1,222,hello
ASN,1,333,hello
ASN,1,999,hello
ASN,1,888,hello
ASN,1,777,hello

dir2下面生成一个文件:
SSS,1,SZ456,HAHA
SSS,1,SZ123,HAHA
SSS,1,SZ555,HAHA
SSS,1,SZ789,HAHA
SSS,1,SZ222,HAHA

[ 本帖最后由 dashorc 于 2009-7-1 16:38 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
14 [报告]
发表于 2009-07-01 16:47 |只看该作者

回复 #13 dashorc 的帖子

到每个目录下执行脚本, 比如

  1. $ pwd
  2. dir1
  3. $ awk 'NR==1{r=$0;print;next}{sub(/None,[0-9]+/,"None,"$1,r);print r}' file* > newfile
复制代码

论坛徽章:
0
15 [报告]
发表于 2009-07-01 16:55 |只看该作者

回复 #14 blackold 的帖子

[root@tommy dir1]# awk 'NR==1{r=$0;print;next}{sub(/None,[0-9]+/,"None,"$1,r);print r}' file1
ASN,1,123,hello
ASN,1,123,hello
ASN,1,123,hello

是我的awk版本问题吗?
[root@tommy dir1]# awk -W version
GNU Awk 3.1.3

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
16 [报告]
发表于 2009-07-01 17:16 |只看该作者

回复 #15 dashorc 的帖子

Sorry. 脚本要修改一下:
  1. awk 'NR==1{r=$0;print;next}{print gensub(/[^,]+/,$1,3,r)}' file*
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP