将bash中的两个文件与子字符串进行比较

时间:2014-09-17 19:56:48

标签: bash awk grep find substring

我有两个文件

tmp1.txt

aaa.bbbbb.txt
bbb.aaaaa.txt
ddd.bbbbbb.txt
mmm.cccccc.txt

tmp2.txt

aaa first
bbb second
ccc third
ddd fourth
eee fifth
fff sixth

我想比较这两个文件tmp1.txt和tmp2.txt,以便它首先在第一个“。”之前使用任何东西。即aaa,bbb,ccc,ddd并在tmp2.txt中搜索,如果发现匹配显示为

aaa.bbbbb.txt first
bbb.aaaaa.txt second
ddd.bbbbbb.txt fourth

由于

1 个答案:

答案 0 :(得分:3)

使用awk

awk 'NR==FNR{a[$1]=$2; next}$1 in a{print $0,a[$1]}' tmp2.txt FS=\. tmp1.txt
aaa.bbbbb.txt first
bbb.aaaaa.txt second
ddd.bbbbbb.txt fourth

最后使用字段分隔符FS对其后面的文件产生影响。