古い記事
ランダムジャンプ
新しい記事
大量のログデータをもらってきて分析するようなときなどに表題のタスクに遭遇する。無闇に tar ball を展開するとすぐにディスクフルになりがちゆえ。

このような場合は tar の O オプション(大文字のオー)を用いる。

以下、例で説明。

data.tar.gz には 0001.txt から 1000.txt までの千個のテキストファイルが入っているとする。

(1) 行数を数えるには:
tar zxOf data.tar.gz | wc -l

(2) 特定の文字列を含む行を取り出すには:
tar zxOf data.tar.gz | grep 'lang:ja'

(3) 文字コードを変換して圧縮して置いておくには:
tar zxOf data.tar.gz | nkf -w | gzip -c > data-utf8.txt.gz

こういうやり方はオンザフライ(On The Fly)と呼ばれるようだ。ディスクイメージを予め作成せずにCD-Rに直接書き込む方式もこう呼ばれていて、メジャー。

追記110610: ウェブから直接:
curl -s http://...tar.gz | tar zxOf - | nkf -w | gzip -c > a.txt.gz