パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

rar アーカイブの中身をリストアップ

手元に rar なアーカイブが大量にあったりしたのだが、その中身を一気にリストアップしたい要望があって、ちょっと調べてみた。ぱっと思いついたのは、Linux でそのフォルダをマウントして、全ファイルに対して unrar l リストアップする、というもの。Windows だけでできる方法もあるのかな。

Cygwin でも頑張ればできるようなので、マウントする必要がない(/cygdraive/C/ とか)し、それもいいのだが、ここは先日セットアップした VMware Player 上の Ubuntu で。unrar も apt-get できるから、ラクラク。小生 Shell で for を回すより、awk で Shell Script を生成する方が好きなんでそれで対応(というか Bash の使い方をすぐ忘れてしまう.. do ; done だっけ?)。どうでもいい話...

今回個々のファイルではなくアーカイブ内のフォルダ名だけ欲しかったので、".D...." とかいう文字列を grep したり(ピリオドはちゃんとエスケープしないといけない、って蛇足)。

ls -1 | awk '{printf("unrar l \047%s\047\n",$0)}' | sh | grep '\.D\.\.\.\.' > /tmp/rarlist.txt

ちなみに Cygwin の unrar は、ここ(Bernie's blog さんのページ)を参考にしたら一応できた。g++-3 が必要と書かれているが、今日現在だと、普通の g++ を入れれば、g++-3 っぽい。gcc4 を入れれば 4 になるのかな。バージョン問題っていうのはどの OS でも逃れられない定めなんだなぁ。

さて、出てきたリストはそこそこいじらないと要望には使えなさそう。なかなか大変。