【发布时间】:2017-05-15 06:41:33
【问题描述】:
我想在将 .gz 文件提交到 Hadoop/Spark 之前对其进行预处理。这是为了避免问题,例如these ones。以下 bash 管道几乎可以满足我的需要,除了 xargs rm 似乎没有删除未通过 gunzip -t 测试的文件。
gunzip -t *.gz 2>&1 | cut -f 2 -d: - | xargs rm
管道静默工作。然而,当再次调用 gunzip -t *.gz 时,它会打印出来
gzip: unhappy.gz: unexpected end of file
或类似的。
【问题讨论】:
-
当我用简单的
echo > test.gz创建的虚假test.gz测试它时,您的确切命令工作正常。您需要提供有关问题所在的更多详细信息。是否显示任何错误消息?提供给xargs rm的输入是什么?如果您手动使用完全相同的输入调用xargs rm,会发生什么情况? -
当有多个损坏的输入文件时,问题似乎出现了。
-
不相关,但如果数据有价值,您是否尝试过 gzrecover?
-
@RicardoBranco 不,但这很有意义。就我而言,错误是由下载中断引起的。使用
gzrecover可以节省不必要的下载。