AWK:将两个文件中的字段与多个字段进行比较

时间:2018-08-08 00:09:14

标签: awk

有人可以帮我吗?

文件1:

Red|Circle|123|apple|orange|grapes

Blue|Square|345|apple|banana|blueberry

Red|Triangle|143|strawberry|orange|grapes

文件2:

123|Square|banana|blueberry

123|Triangle|strawberry|grapes

347|Circle|orange|strawberry

输出:

Red|Circle|123|apple|orange|grapes|Square|banana|blueberry

Red|Circle|123|apple|orange|grapes|Triangle|strawberry|grapes

1 个答案:

答案 0 :(得分:0)

下面的awk应该可以帮助您入门:

awk 'BEGIN {
  FS = "|"
 }
NR == FNR {
# while reading the 1st file
# store its records in the array f
f[$3] = $0
  next
 }
$1 in f {
# when match is found
# print all values
print f[$1], $0>   }' file1 file2


Red|Circle|123|apple|orange|grapes 123|Square|banana|blueberry

Red|Circle|123|apple|orange|grapes 123|Triangle|strawberry|grapes