awk,比较2个文件并写出不兼容的内容

时间:2011-03-28 11:02:29

标签: unix awk

我通常使用

awk BEGIN {FS=" "} NR==FNR{arry[$1]=$0; next} $1 in array && $0=arr[$1] FS in fields infile1 infile2 > outfile 

根据感兴趣的字段提取2个文件中的公共字段。但这次我需要无法比拟。我有2个相同行的文件,但第二个文件中的200行与file1中的编码不同。

我试图:

paste f1 f2 | sort -n -k1,2

两个字段都希望获得$1==$2并获取不相等的字段,但即使应该存在,我也不会得到$1==$2

我该怎么做?

1 个答案:

答案 0 :(得分:1)

由于您似乎比较第一个字段,因为我不知道您的数据文件是什么样的,我将盲目地尝试这个:

$ cat data1.txt
dana 100
john 101
fiona 102

$ cat data2.txt
dana 100
john 501
fiona 102

$ cat data[12].txt|sort|uniq -u
john 101
john 501

上述解决方案将根据第一个字段打印出不相同的行。由于我不完全理解您的数据文件,我会问这个问题。以下是否解决了您的问题?

diff data1.txt data2.txt