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