首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本(awk、grep、sed)中没有一个接一个的协同响应时,基于列连接两个文件

在bash脚本(awk、grep、sed)中没有一个接一个的协同响应时,基于列连接两个文件
EN

Stack Overflow用户
提问于 2015-08-12 06:27:29
回答 1查看 42关注 0票数 0

file1.txt

代码语言:javascript
复制
112|9305|/inst.exe    
112|9305|/lkj.exe    
112|9305|/dje.jar    
112|9305|/ind.pdf    
112|9306|/ma.exe    
112|9306|/ngg.pdf    
112|9307|/jhhh.dat    
112|9312|/ee.dat    
112|9312|/qwq.dll

file2.txt

代码语言:javascript
复制
117|9305|www.gahan.com    
117|9306|www.google.com    
117|9312|www.mihan.com    
117|9307|translate.com

预期输出

代码语言:javascript
复制
112|9305|www.gahan.com/inst.exe
112|9305|www.gahan.com/lkj.exe
112|9305|www.gahan.com/dje.jar
112|9305|www.gahan.com/ind.pdf
112|9306|www.google.com/ma.exe
112|9306|www.google.com/ngg.pdf
112|9307|translate.com/jhhh.dat
112|9312|www.mihan.com/ee.dat
112|9312|www.mihan.com/qwq.dll

我想根据第二列值将file2.txt的第三列添加到file1.txt的第三列。事实上,我想要基于第二列加入他们,但有,没有人再见,他们之间的通信,。我如何在shell脚本中使用awk或grep或sed来完成这些操作。

EN

回答 1

Stack Overflow用户

发布于 2015-08-12 06:40:10

您可以像这样使用awk:

代码语言:javascript
复制
awk 'BEGIN{FS=OFS="|"} FNR==NR{a[$2]=$3; next} $2 in a{$3=a[$2] $3} 1' file2.txt file1.txt
112|9305|www.gahan.com/inst.exe
112|9305|www.gahan.com/lkj.exe
112|9305|www.gahan.com/dje.jar
112|9305|www.gahan.com/ind.pdf
112|9306|www.google.com/ma.exe
112|9306|www.google.com/ngg.pdf
112|9307|translate.com/jhhh.dat
112|9312|www.mihan.com/ee.dat
112|9312|www.mihan.com/qwq.dll
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31957517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档