UNIX ライクなシステムにおいては, gzip (gz) で圧縮されたファイルを目にすることが多いです.
それらのファイルに検索したいときと思ったとき, どうするか.
zgrep
コマンドを使います.
たいていのUNIX/Linuxディストリビューションにおいて, 標準で使える機能です.
$ zgrep -nH "KEYWORD" FILENAME
ところで, いくつものファイルがgz圧縮されていることがあります.
ログファイルなど.
ふつうのテキストファイルが複数あるような場合には, grepコマンドを用いた検索,
grep -rnHI "KEYWORD" DIRECTORY
で対応できます.
しかし, zgrepファイルには, -r
オプション (再帰探索?) がない.
どうするか.
find/xargs コマンドを組み合わせて解決しましょう.
$ find DIRECTORY -type f -name "*.gz" -print0 | xargs -0 zgrep -nH "KEYWORD"
ここでは理由を割愛しますが,
findコマンドの -print0
と xargsコマンドの -0
はあってもなくてもいいですが,
つけておいたほうが無難です.