awk / grepは2つのファイルの単語を一致させます。

awk / grepは2つのファイルの単語を一致させます。

2つのファイルがあります。

file1:

905894
1197693
3703749

file2:

905894   Test1
1197693   Test2
3703749  Test3

ファイル1の列1の要素がファイル2の列1の単語と一致する場合は、2番目の列の値を取得したいと思います。

私はawkがこれを行うことができることを知っていますが、ファイル1を読み込んでループを使用するのをやめています。

ベストアンサー1

使用grep:

$ grep -wFf file1 file2 
905894   Test1
1197693   Test2
3703749  Test3
  • -f一致させるパターン(1行に1つずつ)を取っていることを示します。file1

  • -Fパターンは固定文字列から取得されます。file1つまり、一致する前に追加の操作は必要ありません。

  • -w完全な単語パターンを含む行が一致していることを示します。単語構成文字のみが[A-Za-z0-9_]考慮され、他の文字は単語区切り文字と見なされます。これにより、905894abcd列内の項目は一致せず、列全体のみが一致します。

man grepこれに関するより多くのアイデアをチェックしてください。

おすすめ記事