有效地将大rar文件转换为多个bzip2

时间:2011-11-15 21:44:52

标签: bash shell scripting compression

情节:

我收到了一个包含多个日志文件的大型rar文件。 我正在将每个单独的日志文件转换为bzip2存档。

我现在在做什么:

完全解压缩rar文件,然后将所有日志文件转换为bzip2档案。

我想做什么:

首先不存储所有未压缩的文件,以尽可能高效。

我的第一个想法是解析unrar的输出,以区分文件何时完全解压缩,然后在其上启动bzip2压缩。

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

由于unrar支持p命令来打印文件,所以这样的事情应该有效:

for FN in $(unrar lb "$RARFILE"); do
   unrar p -ierr "$RARFILE" "$FN" | bzip2 -c > "$FN.bz2"
done

如果存档是“可靠”存档,则效率不高,因为它必须多次处理所有文件。如果文件名可以包含空格,也要小心。