比较两个文件中的两列"awk"



我想比较两个文件的$ 1,$ 2列的尴尬列。如果从第二个文件中进行相同的打印,如果不是同一print,则第一个文件中的全部打印。

第一文件:

a 1 2

b 2 3

c 3 4

第二文件:

a 1 2 ko lo to

b 2 3 to ho ro

结果:

a 1 2 ko lo to

b 2 3 to ho ro

c 3 4

所以我想添加与第二个文件不匹配的第一个文件的行。

我写道:

 awk -v OFS="t" 'FNR==NR{a[$1]=$2=$3;next} {if (($1,$2) in a) print a[$1,$2,$3]; else print $0}'

但这不起作用:-(谢谢。

awk to Rescue!

$ awk '!a[$1,$2]++' file2 file1
a 1 2 ko lo to
b 2 3 to ho ro
c 3 4

不过,这不会保留订单(它将首先打印File2目录)。另一个选择是

$ awk    '{k=$1 FS $2} 
  NR==FNR {a[k]=$0; next} 
          {print (k in a?a[k]:$0)}' file2 file1

相关内容

  • 没有找到相关文章

最新更新