gzipファイルを展開せずに行数指定で中身を確認する方法

はじめに

gzipファイルを展開せずに行数指定して中身を確認したいことがたまにあるのですがやり方を忘れることがあるので残しておきます。 まずは圧縮するファイルを適当に作成します。ファイル名はsample.txtとします。私はWindows 10 のbashで試しています。

圧縮ファイルを作る

まずは圧縮するファイルを適当に作成します。ファイル名はsample.txtとします。

abc
def
ghi
jkl
mno

このファイルを以下のコマンドで圧縮します。sample.txt.gz というファイルができました。

gzip sample.txt

中身を見てみる

このファイルの3行目だけを見たい場合は以下のコマンドで確認できます。 ghi と標準出力に表示されると思います。 gzip -dczcat で置き換えることができます。(Macだと gzcatコマンド)

gzip -dc sample.txt.gz | sed -n 3p 

複数の行を確認したい場合もあるかと思います。例えばファイルの2行目から4行目を見たい場合は以下のコマンドです。 先ほどはsedコマンドで3pとしていた部分を2,4p のように始まりと終わりの行を指定します。

zcat sample.txt.gz | sed -n 2,4p 

gzipファイルを展開せずに行数指定で中身を確認する方法は以上になります。
展開せずに中身を見るコマンドとしては他にもzmoreやzlessがありますが、lessでも実は見ることができます。