他のファイルと一致するようにファイルのIDリストを一致させるには、「grep」を使用します。

他のファイルと一致するようにファイルのIDリストを一致させるには、「grep」を使用します。

私は次のようにフォーラムで提案されたさまざまな形式を使用してきました。

grep -f file1.txt file2.txt > ouput.txt

file1.txtIDのリストを含む列。例:

15002345234 
15001234214

file2.txtタブで区切られた列が含まれ、1つはIDを含み、もう1つは他の情報を含みます。

1500349850 1 3 father

私は他の投稿から提案されたコマンドawkだけでなくシェルループも試しました。sedしかし、本質的に1つのIDに対してのみ結果が得られます。

150982309750 1 2 2  4

また、常に同じで、出力には次のような多くの結果が必要です。

150982309750 1 2 2  4
150563524856 1 3 2  2
150864364612 2 1 2  2

何が間違っているのか、どんなアイデアがありますか?

答え1

私はできます。

  • -w単語全体に一致するオプションを追加
  • -F固定文字列(正規表現ではない)一致のオプションが追加されました。
  • \r\nfile1が行末を使用していないことを確認してください。後続により\r一致が失敗します。これを確認してくださいhead file1.txt | od -c
grep -wFf <(sed 's/\r$//' file1.txt) file2.txt

関連情報