Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

zcatやzlessを使ってgz系で圧縮されたファイルの中身をみる

zcatやzlessを使うと、gz系で圧縮されたテキストファイルの中身をみる事ができます。

前回の記事で扱ったような、Wikipediaベトナムに関するページの圧縮ファイルがあったとします。

$ tee >(wc -l >&2) < vietnam.html | gzip > vietnam.gz
    3638

実は、テキストファイルしか入ってないgzなら圧縮ファイルのまま中身を読みに行く事が可能です。
中身は標準出力に出てきます。

$ zless vietnam.gz 
<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta charset="UTF-8" />
<title>Vietnam - Wikipedia, the free encyclopedia</title>
<meta name="generator" content="MediaWiki 1.25wmf22" />
#...
<td align="center" style="font-size:85%;"><a href="/wiki/Flag_of_Vietnam" title="Flag of Vietnam">Flag</a></td>
<td align="center" style="font-size:85%;"><a href="/wiki/Emblem_of_Vietnam" title="Emblem of Vietnam">Emblem</a></td>
</tr>
</table>
</td>
</tr>

標準出力なら、当然各種文字列整形もできるわけです。

$ zless vietnam.gz | grep ベトナム
<li class="interlanguage-link interwiki-ja"><a href="//ja.wikipedia.org/wiki/%E3%83%99%E3%83%88%E3%83%8A%E3%83%A0" title="ベトナム – Japanese" lang="ja" hreflang="ja">日本語</a></li>

実際のところ

実際にはこんな奇怪な使い方はしません。
GZ系圧縮ファイルは組み込みLinuxカーネル設定ファイルとして突っ込まれてるケースがあったりします。
そんな時、この手を使ってフラグやら何やらの調査をしたりします。

参考もと

  • man zless