shell – 两个文件上的多个字段上的Unix连接

我有两个文件

cat test1.txt

1|2|3|4

2|3|4|4

3|4|5|5

cat test2.txt

1|2|4|5

2|3|5|6

3|5|7|7

我的输出应该是

1|2|3|4|4|5

2|3|4|4|5|6

它就像在字段1和2上连接两个文件一样,从文件2中获取文件1和3,4中1,2,3,4的值.

请在这件事上给予我帮助?

最佳答案
awk -F\| 'NR == FNR {
  f2[$1, $2] = $3 OFS $4
  next
  }
($1, $2) in f2 {
  print $0, f2[$1, $2]
  }' OFS=\| test2.txt test1.txt

转载注明原文:shell – 两个文件上的多个字段上的Unix连接 - 代码日志