テキストファイルの各行を使用して一致する文字列を持つ2番目のテキストファイルの行を選択するにはどうすればよいですか? [コピー]

テキストファイルの各行を使用して一致する文字列を持つ2番目のテキストファイルの行を選択するにはどうすればよいですか? [コピー]

active-users.txtとall-user-info.txtという2つのテキストファイルがあるとしましょう。

active-users.txtには、数値のユーザーIDのみが含まれています。

all-user.txt には、ユーザー ID およびその他の情報フィールドが含まれています。

私がしなければならないのは、active-users.txtの各ユーザーIDの完全な情報行を含む3番目のテキストファイルを作成することです。

Bashスクリプトとコマンドラインで次のことを試しました。

for i in $(< active-users.txt)
do
grep $i all-users.txt >> active-user-info.txt
done

私を狂わせる問題は、active-user-info.txt出力ファイルに常にall-user-info.txtのすべての内容が含まれていることです。そして、私はここにactiveUsersのuserIDを含む行だけを含めたいと思います。 txt

私は何を見逃していますか?

ベストアンサー1

仮説アクティブユーザー.txt空白行なし:

grep -f active-users.txt all-users.txt > active-users-info.txt

もしアクティブユーザー.txt1つ以上の空行があります。

grep '.' active-users.txt | grep -f - all-users.txt > active-users-info.txt

おすすめ記事