2 番目のファイルが一致する場合は、最初のファイルのパターンを印刷します。

2 番目のファイルが一致する場合は、最初のファイルのパターンを印刷します。

私はこれらのファイルを持っています。

ファイル1.txt

A
B
C
D
E

ファイル2.txt

A 1
B 2
D 3

私が望む出力は次のとおりです。

A
B
D

試してみましたが、grep -Ff file1.txt file2.txt結果は

A 1
B 2
D 3

ベストアンサー1

場所join:

join -o 1.1 f1.txt f2.txt

デフォルトでは、joinファイルのスペースで区切られた最初のフィールドが関連付けられます。-o 1.1出力を指定すると、最初のファイルの最初のフィールドにのみ興味があります。

sortファイルがソートされていない場合は、まずファイルをソートする必要があります。

join -o 1.1 <(sort f1.txt) <(sort f2.txt)

例:

$ cat f1.txt                    
A
B
C
D
E

$ cat f2.txt                    
A 1
B 2
D 3

$ join -o 1.1 f1.txt f2.txt 
A
B
D

おすすめ記事