我有一个包含很多行的md5sum文件。我想使用GNU parallel来加速md5sum检查过程。在md5sum中,当没有文件输入时,它将从stdin获取md5字符串。我试过这个:
cat checksums.md5 | parallel md5sum -c {}
但是得到了这个错误:
md5sum 445350b414a8031d9dd6b1e68a6f2367 testing.gz: No such file or directory
如何与md5sum检查并行?
答案 0 :(得分:4)
假设checksums.md5的格式为:
d41d8cd98f00b204e9800998ecf8427e My file name
执行命令
cat checksums.md5 | parallel --pipe -N1 md5sum -c
如果您的文件很小:-N100
如果这不能加快处理速度,请确保磁盘足够快:md5sum可以处理500 MB / s。 iostat -dkx 1
可以告诉您磁盘是否是瓶颈。
答案 1 :(得分:1)
您需要选项--pipe
。在此模式下,并行将stdin拆分为块并通过stdin将每个块提供给命令,有关详细信息,请参阅man parallel
:
cat checksums.md5 | parallel --pipe md5sum -c -
默认情况下,块的大小为1 MB,可以使用--block
选项进行更改。