.gzファイルを再帰的にgrepする方法は?

.gzファイルを再帰的にgrepする方法は?

私は元の.emlを.gzファイルに圧縮して定期的にGmailメッセージをダウンロードするスクリプトを使用しています。スクリプトは毎日フォルダを作成し、各メッセージを独自のファイルに圧縮します。

このアーカイブで「文字列」を検索する方法が欲しいです。

Grepだけではこれを行うことができないようです。 SearchMonkeyも試してみました。

ベストアンサー1

現在のディレクトリのすべての.eml.gzファイルを繰り返しgrepするには、次のようにします。

find . -name \*.eml.gz -print0 | xargs -0 zgrep "STRING"

*シェルが解釈されないように、最初のものをエスケープする必要があります。-print0findに標準入力から読み取った各ファイルの後にヌル文字を印刷し、xargs -0各ファイルに対して次のコマンドを実行するように指示します。zgrepただしgrep、まずファイルを解凍します。

おすすめ記事