単語のリストをgrepする方法


84

新しい行で区切られた100語のファイルAがあります。ファイルBを検索して、ファイルAの単語が含まれているかどうかを確認したいと思います。

私は以下を試しましたが、うまくいきません:

grep -F A B

回答:


116

オプションを使用する必要があります-f

$ grep -f A B

このオプション-Fは、-fパターンのファイルを指定するための固定文字列検索を実行します。ファイルに固定文字列のみが含まれ、正規表現が含まれていない場合は、両方が必要になることがあります。

$ grep -Ff A B

-w単語全体のみを照合するオプションが必要な場合もあります。

$ grep -wFf A B

man grep考えられるすべての引数とその機能の説明を読んでください。


4
正規表現を使用したくない場合、-Fは単なる最適化ですか?
フェニックス

ディレクトリツリーBのファイルAで出現するすべての単語を検索し、Bのすべての一致のファイル名のみを一覧表示するのはどうですか?
zealoushacker 2014

2

大きなファイルで非常に長い単語のリストを見つけるには、egrepを使用する方が効率的です。

remove the last \n of A
$ tr '\n' '|' < A > A_regex
$ egrep -f A_regex B
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.