Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 高效地将大rar文件转换为多个bzip2_Bash_Shell_Scripting_Compression - Fatal编程技术网

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

Bash 高效地将大rar文件转换为多个bzip2,bash,shell,scripting,compression,Bash,Shell,Scripting,Compression,情况: 我收到一个包含多个日志文件的大rar文件。 我正在将每个日志文件转换为bzip2归档文件 我现在在做什么: 完全解压缩rar文件,然后将所有日志文件转换为bzip2归档文件 我想做什么: 不要先存储所有未压缩的文件,以尽可能提高效率 我的第一个想法是解析UNRR的输出,以区分文件何时完全解压缩,然后对其启动bzip2压缩 我该怎么做呢?由于UNRR支持打印文件的p命令,类似这样的命令应该可以工作: for FN in $(unrar lb "$RARFILE"); do unrar

情况:

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

我现在在做什么:

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

我想做什么:

不要先存储所有未压缩的文件,以尽可能提高效率

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


我该怎么做呢?

由于UNRR支持打印文件的
p
命令,类似这样的命令应该可以工作:

for FN in $(unrar lb "$RARFILE"); do
   unrar p -ierr "$RARFILE" "$FN" | bzip2 -c > "$FN.bz2"
done
如果归档文件是一个“可靠”的归档文件,这将不是非常有效,因为它将不得不多次处理所有文件。如果文件名可能包含空格,也要小心