複数のファイルタイプに対して grep --include オプションを使用するにはどうすればいいですか? 質問する

複数のファイルタイプに対して grep --include オプションを使用するにはどうすればいいですか? 質問する

あるディレクトリ内のすべてのhtmlファイルをgrepしたいときは、次のようにします。

grep --include="*.html" pattern -R /some/path

これはうまく機能します。問題は、あるディレクトリ内のすべての html、htm、php ファイルを grep する方法です。

これから特定のファイルをgrepしないようにするには、grep --exclude/--include構文を使用します。、次のことができるようです

grep --include="*.{html,php,htm}" pattern -R /some/path

しかし、残念ながら、私の環境では動作しませんでした。
参考までに、私の grep バージョンは 2.5.1 です。

ベストアンサー1

--include複数のフラグを使用できます。私の場合はこれでうまくいきました:

grep -r --include=*.html --include=*.php --include=*.htm "pattern" /some/path/

ただし、次のようにすることができますデロイターが提案. これは私の場合はうまくいきます:

grep -r --include=*.{html,php,htm} "pattern" /some/path/

次のような場合にもfindと を使用できることを忘れないでください。xargs

find /some/path/ -name "*.htm*" -or -name "*.php" | xargs grep "pattern"

おすすめ記事