LinuxやUNIXを使っていれば、ログを見る際にgrepを行う事が多いだろう。
ログの場合、容量の関係からテキストファイルではなく、tarやzipで圧縮したファイルを読む対応が必要になる事がある。
今回は、そんな時に使える、圧縮ファイルを直接grepする方法について記述する。
1.gzの場合
.gzファイルをcatする場合、zcatコマンドを用いる。
zcat 参照したいgzファイル
.gzファイルにgrepする場合は、grepコマンドにオプションを付与するのではなく、zgrepコマンドを用いる。
zgrep 検索したい文字列 検索したいgzファイル
2.tar.gzの場合
.tar.gzファイルをcatする場合、zcatコマンドを用いるか、もしくはtarコマンドを用いて参照する方法がある。
zcat 参照したいtar.gzファイル
tar -O -xzvf 参照したい.tar.gzファイル
.tar.gzファイルをgrepする場合、一度tarコマンドで参照を行い、その結果をgrepすることで確認出来る。
tar -O -xzvf 検索したい.tar.gzファイル | grep 検索したい文字列
3.zipの場合
.zipファイルをcatする場合、zcatコマンドを用いる。
zcat 参照したいzipファイル
.zipファイルをgrepする場合、zgrepコマンドを用いる。
zgrep 検索したい文字列 検索したいzipファイル
結論
圧縮ファイルを参照する場合は、zcat一つでどうにかなるようだ。
grepの時だけ、tar.gzの場合はzgrepでgrepすることが出来ないようだ。