あるディレクトリ内のすべての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"