本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、gzipやbzip2、xzで圧縮したファイルに格納されているファイルを表示するコマンドを紹介します。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はgzipで圧縮されたファイルを表示する「zcat」コマンドと「zless」コマンド、「zmore」コマンド、「zgrep」コマンド、「zcmp」コマンド、「zdiff」コマンドです。bzip2コマンドやxzコマンドで圧縮されたファイルを扱う同様のコマンドも併せて紹介します。
「zcat」は、gzipコマンド(連載第39回)で圧縮されたファイルに対して利用できる「cat」コマンド(第1回)です。
圧縮されたファイルをコマンド操作で伸張しなくても、そのまま表示できます。例えば「file.txt」をgzipで圧縮した「file.txt.gz」というファイルがあった場合、「zcat file.txt.gz」とすることで、「cat file.txt」と同様にファイルの内容が分かります。
zlessやzmore、zgrep、zcmp、zdiffコマンドも同様で、それぞれ、lessコマンド(第84回)、moreコマンド(第2回)、grepコマンド(第9回)、cmpコマンド(第106回)、diffコマンド(第102回)相当の処理が可能です。
なお、grepと同等の処理が可能なコマンドとして、zgrepの他に「zfgrep」コマンドと「zegrep」コマンドもあります(※1)。
「bzip2」コマンド(第248回)で圧縮されたファイルに対しては「bzcat」「bzless」「bzmore」「bzgrep」「bzcmp」「bzdiff」コマンドを使用します。
「xz」コマンド(第249回)で圧縮されたファイルに対しては同様に「xzcat」「xzless」「xzmore」「xzgrep」「xzcmp」「xzdiff」コマンドを使用します。
※1 zfgrepは「fgrep」コマンド相当の動作となる。fgrepは「grep -F」相当のコマンドであり、検索文字列を正規表現ではなく固定の文字列として扱う。同様に「egrep」は「grep -E」相当で、検索文字列に拡張正規表現を使用する。
zcat [オプション] [ファイル名]
zless [ファイル名]
zmore [ファイル名]
zgrep [オプション] [-e] パターン ファイル名
zcmp [オプション] ファイル名 [ファイル名]
zdiff [オプション] ファイル名 [ファイル名]
※[ ]は省略可能な引数を示しています。
各コマンドのオプションについては、基となったコマンドのオプションを参照ください。
「zcat ファイル名」で、gzip形式で圧縮されたファイルの内容を表示します。拡張子の「.gz」は省略可能です(画面1)。
同様に、「zless ファイル名」や「zmore ファイル名」で表示できます(画面2)。
zcat file.txt.gz
(file.txt.gzの圧縮元ファイルfile.txtをcatコマンドで表示する、「.gz」は省略可能)(画面1)
zless file.txt.gz
(file.txtをlessコマンドで表示する、「.gz」は省略可能)
zmore file.txt.gz
(file.txtをmoreコマンドで表示する、「.gz」は省略可能)(画面2)
bzip2コマンドで圧縮されたファイルに対しては、「bzcat」や「bzless」「bzmore」コマンドで、圧縮元のファイルの内容を表示できます(画面3)。
同様に、xzコマンドで圧縮されたファイルの場合、「xzcat」や「xzless」「xzmore」コマンドで、圧縮元のファイルの内容を確認できます(画面4)。
なお、bzcatコマンドやxzcatコマンドなどの場合、拡張子(.bz2や.xz)を省略できません。
bzcat file.txt.bz2
(file.txt.bz2の圧縮元ファイルfile.txtをcatコマンドで表示する)(画面3)
bzless file.txt.bz2
(file.txtをlessコマンドで表示する)
bzmore file.txt.bz2
(file.txtをmoreコマンドで表示する)(画面3)
xzcat file.txt.xz
(file.txtをcatコマンドで表示する)(画面4)
xzless file.txt.xz
(file.txtをlessコマンドで表示する)
xzmore file.txt.xz
(file.txtをmoreコマンドで表示する)(画面4)
「zgrep 検索文字列 ファイル名」とすることで、gzipで圧縮されたファイルをgrepコマンドで検索できます(画面5)。
同様に、bzip2で圧縮されたファイルの場合は「bzgrep 検索文字列 ファイル名」で検索できます(画面6)。xzで圧縮されたファイルであれば「xzgrep 検索文字列 ファイル名」とします(画面7)。
zgrep、bzgrep、xzgrepはバイナリではなく、シェルスクリプトで書かれており、検索処理そのものはgrepコマンドが担っています。ただし、オプションの処理が若干異なるため、画面6のようにgrepコマンド用のオプションが一部利用できないケースがあるようです。
zgrep 検索文字列 file.txt.gz
(file.txt.gzの圧縮元ファイルであるfile.txtからgrepコマンドで「検索文字列」を探す、「.gz」は省略可能)
bzgrep 検索文字列 file.txt.bz2
(file.txtをgrepコマンドで検索する)
xzgrep 検索文字列 file.txt.xz
(file.txtをgrepコマンドで検索する)
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.