web-dev-qa-db-ja.com

2つのファイルに共通する要素を見つける方法は?

たとえば、次の情報を持つ2つのファイルがあります。

ファイル#1:

12
13
14
15

ファイル#2:

12 1
13 2
14 2
15 6
16 7
17 8

出力ファイル:

1
2
2
6

出力ファイルでは、ファイル#1の最初の列と一致するファイル#2の2番目の列の値のみが必要です。 Linuxにそのためのユーティリティ関数はありますか?私はシェルスクリプトを初めて使用しますが、誰か助けてもらえますか?

4

joinコマンドを使用して特定の列のファイルを結合し、awkを使用して出力を解析できます。

列1でこれらのファイルを結合するには、パラメーター-j 1をjoinコマンドに渡します。

usr@srv % join -j 1 test test2 
12 1

13 2

14 2

15 6

その後、awkを使用して、2番目の列のみを出力します。

usr@srv % join -j 1 test test2 | awk '{print $2}'
1

2

2

6
9
binfalse