
ファイル内のテキストを検索していますが、ファイルの数が多すぎて、検索したテキストが 1 つのファイル内に複数回表示されます。各ファイルが 1 つだけリストされている、検索したテキストを含むファイルのリストを取得するにはどうすればよいでしょうか。
答え1
grep -l xyz file*
ここでxyzは検索パターン、file*は検索対象となるファイルのリストです。
答え2
grep -l LIST PATTERN
が正しい方法です。あるいは、xargs
同じことを行うために以下を使用することもできます:
xargs grep "My Search Pattern" < input.txt
xargs
grep
パイプから渡される複数のファイル名に使用したい場合に特に便利です。たとえば、次のようになります。
find ~/Documents ~/bin -print0 | xargs -0 grep 'Search Term'