別々の行にテキストを含むファイルがあります。
text1
text2
text3
textN
多くのファイルを含むディレクトリがあります。この特定のディレクトリの各行をgrepしたい。これを行う簡単な方法は何ですか?
ループする必要はありません。ファイルからパターンを取得grep
するオプションを使用できます。-f
grep -f pattern_file files*
からman grep
:
-f ファイル、 --file=ファイル
FILE からパターンを 1 行に 1 つずつ取得します。空のファイルにはパターンが含まれていないため、何にも一致しません。(-f は POSIX で指定されています。)
$ cat a1
hello
how are you?
$ cat a2
bye
hello
$ cat pattern
hello
bye
$ grep -f pattern a*
a1:hello
a2:bye
a2:hello