【发布时间】:2019-08-09 13:28:29
【问题描述】:
我正在尝试合并两个文件,在 $1 上匹配它们,并将文件 2 中的匹配显示到新列 $3 中。如果它们不匹配,则该值应显示为 0。
例如我有以下两个文件
tmptest1.txt
aaa 231
bbb 132
ccc 111
tmptest2.txt
aaa 222
ddd 132
我希望输出文件是:
aaa 231 222
bbb 132 0
ccc 111 0
ddd 0 132
我尝试了下面的代码,虽然它确实将匹配的数字附加到 $3 中,但它忽略了不匹配的数字,因为我的打印语句只查看一个文件。我如何考虑两个文件的组合?
awk 'FNR==NR{a[$1]=$2;next} {print $1,$2,a[$1]}' tmptest1.txt tmptest2.txt | sort | awk '!$3{ $3="0"1}
结果
aaa 231 222
bbb 132 0
ccc 111 0
【问题讨论】: