2017-03-09 19 views
1

awkの$ 1、$ 2列の2つのファイルを比較したいと思います。 2番目のファイルからすべて同じものを出力し、同じでない場合は最初のファイルからすべてを出力します。2つのファイル "awk"の2つの列を比較します

第1ファイル:

B 2 3

C 3~4

2ファイル:

1 2 KO LO 〜

B 2 3結果

HO ROへ:

1 2 KO LO

B 2〜3 ​​HO ROに

C 3

私は第1ファイルから2行目に一致しない行を追加したいと思いますファイル。

は私が書いた:

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

しかし はありがとう:-(それが動作していない

答えて

3

awkを救助に

$ awk '!a[$1,$2]++' file2 file1 

a 1 2 ko lo to 
b 2 3 to ho ro 
c 3 4 

これをしかし順序を保持しません。! (最初にfile2の内容を出力します)。もう1つの方法は、

です。
+0

本当に:Dは完璧に動作します!どうもありがとう。 – Vonton