1. ホーム
  2. shell

[解決済み] grep --includeオプションを複数のファイルタイプに使用するにはどうすればよいですか?

2022-05-13 21:41:07

質問

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

どのように解決するのですか?

複数の --include フラグを使用することができます。これは私のために動作します。

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

しかし、次のようにすることができます。 提案された . これは私のために動作します。

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

を使うことができることを忘れないでください。 findxargs を使うこともできます。

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