如何使用awk替换列(匹配模式)?

时间:2017-02-28 18:58:01

标签: bash awk

我正在尝试使用awk编辑文件,但我无法在不创建中间文件的情况下完成此操作。

Basicaly我想在file2和file3等中使用第1列进行搜索,并替换第2列以匹配第1列行。 (请注意,file2和file3可能包含其他内容)

我有

FILE1.TXT

aaa 111
aaa 222 
bbb 333
bbb 444

FILE2.TXT

zzz zzz
aaa 999
zzz zzz
aaa 888

File3.txt

bbb 000
bbb 001
yyy yyy
yyy yyy

期望的输出

aaa 999
aaa 888 
bbb 000
bbb 001

1 个答案:

答案 0 :(得分:2)

这是你指定的,但我想有很多边缘情况没有涵盖。

$ awk 'NR==FNR{a[$1]; next} $1 in a' file{1..3}

aaa 999
aaa 888
bbb 000
bbb 001