Unix Awk,比较两个文件,写出不可比较的
我通常使用Unix Awk,比较两个文件,写出不可比较的,unix,awk,Unix,Awk,我通常使用 awk BEGIN {FS=" "} NR==FNR{arry[$1]=$0; next} $1 in array && $0=arr[$1] FS in fields infile1 infile2 > outfile 根据感兴趣的字段提取2个文件中的公共字段。但这次我需要无与伦比的。我有两个文件的行数相等,但第二个文件中的200行代码与file1中的代码不同 我试图: paste f1 f2 | sort -n -k1,2 这两个字段都希望得到$1==
awk BEGIN {FS=" "} NR==FNR{arry[$1]=$0; next} $1 in array && $0=arr[$1] FS in fields infile1 infile2 > outfile
根据感兴趣的字段提取2个文件中的公共字段。但这次我需要无与伦比的。我有两个文件的行数相等,但第二个文件中的200行代码与file1
中的代码不同
我试图:
paste f1 f2 | sort -n -k1,2
这两个字段都希望得到$1==$2
,并采用不相等的字段,但即使在应该得到的时候,我也没有得到$1==$2
我怎样才能做到这一点呢?由于您似乎要按第一个字段进行比较,而且由于我不知道您的数据文件是什么样子,因此我将盲目尝试:
$ 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
如果您不必使用awk,只需执行
comm-3file1file2
@Marcin我不必使用awk。这个很好用。非常感谢。