Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix Awk,比较两个文件,写出不可比较的_Unix_Awk - Fatal编程技术网

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。这个很好用。非常感谢。