XYZという名前のディレクトリがあり、その中にディレクトリABC、DEF、GHIがあります。すべてのディレクトリ (つまり、XYZ、XYZ/ABC、XYZ/DEF、および XYZ/GHI) のすべての *.c でパターン 'writeText' を検索したいのですが、どの grep コマンドを使用できますか?
また、XYZ、XYZ/ABC、XYZ/GHI のみを検索し、XYZ/DEF を検索したくない場合、どの grep コマンドを使用できますか?
ありがとうございました!
XYZという名前のディレクトリがあり、その中にディレクトリABC、DEF、GHIがあります。すべてのディレクトリ (つまり、XYZ、XYZ/ABC、XYZ/DEF、および XYZ/GHI) のすべての *.c でパターン 'writeText' を検索したいのですが、どの grep コマンドを使用できますか?
また、XYZ、XYZ/ABC、XYZ/GHI のみを検索し、XYZ/DEF を検索したくない場合、どの grep コマンドを使用できますか?
ありがとうございました!
grep -R --include="*.c" --exclude-dir={DEF} writeFile /path/to/XYZ
-R
再帰を意味するので、それはあなたがgrepしているディレクトリのサブディレクトリに入ります--include="*.c"
「で終わるファイルを探す」という意味.c
です--exclude-dir={DEF}
「という名前DEF
のディレクトリを除外します。複数のディレクトリを除外する場合は、次のようにします。--exclude-dir={DEF,GBA,XYZ}
writeFile
あなたが模索しているパターンです/path/to/XYZ
grepを実行するディレクトリへのパスです。これらのフラグはGNUgrep
に適用されることに注意してください。BSD/SysV/AIXを使用している場合は異なる場合がありますgrep
。Linux / GNU grep utilsを使用している場合は、問題ないはずです。
次のコマンドを使用して、少なくとも質問の最初の部分に答えることができます。
find . -name *.c | xargs grep "writeText"