ファイル内の1行の最初の単語をGrepします。

ファイル内の1行の最初の単語をGrepします。

だから良いfile.txtです。

John [email protected]
Mary [email protected]

しかし、私もいます。

Pickethunter123 [email protected]
XPC61 [email protected]
GeorgeBushSucks [email protected]

英語名のリストがありますnames.txt。行の最初の単語だけで別のファイルをgrepする方法はありますか?

ベストアンサー1

正規表現がパターンの先頭にのみ一致するようにするには、^ファイルの各行に行アンカーを追加できますnames.txt。ファイルを現在の場所から変更したくない場合は、次のコマンドを使用してすぐに変更できますsed

sed 's/^/^/' names.txt | grep -wf - file.txt

結果をgrep -f標準入力に渡します-

あるいは、区切りデータの場合、awkは良い選択です。

awk 'NR==FNR{fn[$1]; next} $1 in fn' names.txt file.txt

おすすめ記事