2011-03-28 95 views
0

我通常使用awk中,比較兩個文件,並寫出incomparables

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即使應該有。

我該怎麼做?

+0

爲編輯 – Tumi2002 2011-03-28 11:26:58

+0

@Olli感謝,如果你沒有使用awk做,只是做'COMM -3文件1 file2' – Marcin 2011-03-28 12:14:18

+0

@Marcin我沒有用awk。這工作得很好。謝謝 – Tumi2002 2011-03-28 13:17:09

回答

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