特定のディレクトリを除外してgrepを使用して再帰検索を行うにはどうすればよいですか?grepを使用して再帰的検索でディレクトリを除外する方法は?
背景:私は検索で排除したいログファイルで構成される大きなディレクトリを持っています。最も簡単な方法は、ログフォルダを移動することです。残念ながら、私はそれを行うことはできません。プロジェクトがその場所を義務付けているからです。
どうすればいいですか?
特定のディレクトリを除外してgrepを使用して再帰検索を行うにはどうすればよいですか?grepを使用して再帰的検索でディレクトリを除外する方法は?
背景:私は検索で排除したいログファイルで構成される大きなディレクトリを持っています。最も簡単な方法は、ログフォルダを移動することです。残念ながら、私はそれを行うことはできません。プロジェクトがその場所を義務付けているからです。
どうすればいいですか?
あなたはこれをお探しですか? grepのmanページから
:あなたが検索でfind
を使用できる場合に、代替として
--exclude-dir=DIR
Exclude directories matching the pattern DIR from recursive searches.
、それはまた、有用である可能性がある:
find [directory] -name "*.log" -prune -o -type f -print|grep ...
したい場合は
[directory]
が実際に(現在のディレクトリにすることができますちょうど
.
がする)。
次の部分は-name "*.log" -prune
です。それはパターン*.log
でファイル名を検索し、それらを結果から除外します。
次に、
そして( "または" など)と言う-type f -print
-o
ある "印刷ファイルである任意のタイプ(stdoutに)。"
これらの結果には、.log
で終わるものを除き、すべて[directory]
にあるすべてのファイル(ディレクトリは返されません)が含まれている必要があります。その後、あなたはgrep
の結果を得ることができます。
ありがとう、時には忘れて、manページもあります:) – Kiran
@KiranChandrashekhar与えられた答えを受け入れてください。 – FailedDev
古いバージョンのgrepにはこのフラグがありません。 – ale