免费注册 查看新帖 |

Chinaunix

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

求助,相同项不同数据替换的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-05 14:23 |只看该作者 |倒序浏览
本帖最后由 xlongwing 于 2011-05-05 15:07 编辑

之前的描述可能有些不清楚,重新编辑下,B文件是包含name字符而已
文件A中有以下数据
11111
22222
33333
44444
文件B中有4个相同的项,如
aaaa,name,aaa
dfadsfadsfadsf
adsfasdf
adsfasdf
bbbb,name,bbb
asdfasdfadsfafds
adsfasd
cccc,name,ccc
asdf
dddd,name,ddd
1

请问大家,应该如何写SHELL将A文件的4条数据,分别去替换B文件中的name,以得到结果
aaaa,11111,aaa
dfadsfadsfadsf
adsfasdf
adsfasdf
bbbb,22222,bbb
asdfasdfadsfafds
adsfasd
cccc,33333,ccc
asdf
dddd,44444,ddd
1

论坛徽章:
0
2 [报告]
发表于 2011-05-05 14:44 |只看该作者
回复 1# xlongwing


    如果行数一样的话
  1. awk -F[,] 'NR==FNR{a[FNR]=$1}NR>FNR{print $1","a[FNR]","$3}' A B
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2011-05-05 14:47 |只看该作者
awk -F, 'NR==FNR{i[NR]=$1}NR!=FNR{print $1 "," i[++a] "," $3}' a b

论坛徽章:
0
4 [报告]
发表于 2011-05-05 14:48 |只看该作者
paste -d, A B|awk  'BEGIN{FS=",";OFS=","}{print $2,$1,$4}'

论坛徽章:
0
5 [报告]
发表于 2011-05-05 14:53 |只看该作者
补充说明下,,B中的行数什么的和A都不一样,只是里面包含了name这个字符,,需要用A里面的数据分别顺序替换

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
6 [报告]
发表于 2011-05-05 14:54 |只看该作者
awk -F, '{"cat a.txt"|getline a;print $1FS""a""FS$3;}' b.txt

论坛徽章:
0
7 [报告]
发表于 2011-05-05 14:58 |只看该作者
n=1;while read line ;do sed -n "${n}s/name/$line/p" B ;((n++));done<A

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
8 [报告]
发表于 2011-05-05 14:59 |只看该作者
对于5楼的说明来说,以上的脚本都不符合LZ要求
$ cat >1
111
222
333
444
$ cat >2
aaaa,name,aaa
bbbb,name,bbb
cccc,name,ccc
sadas,sad,sd
dddd,name,test

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
9 [报告]
发表于 2011-05-05 15:07 |只看该作者
回复  ziyunfei


    也可以直接getline a < "file"
yinyuemi 发表于 2011-05-05 15:01


想这个写法没想起来,好久没用忘了

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
10 [报告]
发表于 2011-05-05 15:08 |只看该作者
本帖最后由 yinyuemi 于 2011-05-05 15:14 编辑

回复 1# xlongwing


   借花谢佛
awk -F, '/name/{getline a<"file1";print $1 FS a FS $3;next}1' file2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP