2016-05-02 2 views
0

私は2つのファイルf1.txtとf2.txtを比較して、共通の要素を取得する必要があります。この場合、共通の要素で結ばれた行全体を出力するために各行の最初の要素を照合しますか?私は2つのファイルf1.txtとf2.txtを比較し、共通の要素を取得する必要がありますか?

f1.txt

3 
4 
5 

f2.txt

1AAAAAA 
2BBBBBB 
3CCCCCC 
4DDSDDDD 
5EEEEEE 
6FFFFFFF 
7GGGGG 
5EHHH 

期待される結果:

3CCCCCC 
4DCCCCC 
5EEEEEEE 

答えて

0
awk 'FNR==NR{ 
    a[$1]; 
    next 
} 
{ 
    split($1,b,"") ; 
    if(b[1] in a && !c[b[1]]) { 
     print $1; 
     c[b[1]]=1 
    } 
}' f1.txt f2.txt 
0
$ awk -v FS= 'NR==FNR{a[$1];next} $1 in a{print; delete a[$1]}' f1.txt f2.txt 
3CCCCCC 
4DDSDDDD 
5EEEEEE 

以上で動作しますGNU awkと、FSがnullのときにレコードを個々の文字のフィールドに分割するその他のawk。他のawkではsubstr($ 0,1,1)を使用します。

関連する問題