【发布时间】:2020-06-10 19:24:15
【问题描述】:
我想将一个文件的第一列与第二个文件的所有列进行比较,如果找到匹配项,则打印第一列(第一个文件)和在第二个文件中找到匹配项的完整行。
示例输入文件_1
RAM_1
RAM_2
RAM_3
RAM_4
RAM_5
RAM_6
示例输入文件_2
RAM_7 RAM_3
RAM_8 RAM_10 RAM_15 RAM_2
RAM_6 RAM_16 RAM_4
RAM_11 RAM_5 RAM_18 RAM_20 RAM_19
RAM_1 RAM_8 RAM_9 RAM_12
预期输出
RAM_1 RAM_1 RAM_8 RAM_9 RAM_12
RAM_2 RAM_8 RAM_10 RAM_15 RAM_2
RAM_3 RAM_7 RAM_3
RAM_4 RAM_6 RAM_16 RAM_4
RAM_5 RAM_11 RAM_5 RAM_18 RAM_20 RAM_19
RAM_6 RAM_6 RAM_16 RAM_4
我已尝试修复列数,但它只打印文件的第一行。
awk 'NR==FNR{a[$1]=$0} $1 in a && $2 in a && $3 in a{print a[$1] ORS a[$2] ORS a[$3]}' file_2 file_1
【问题讨论】: