给定一个文件,如:
a
b
c
如何获得如下输出:
a 0cc175b9c0f1b6a831c399e269772661
b 92eb5ffee6ae2fec3ad71c777531578f
c 4a8a08f09d37b73795649038408b5f33
以一种有效的方式?(输入为 80 GB)
给定一个文件,如:
a
b
c
如何获得如下输出:
a 0cc175b9c0f1b6a831c399e269772661
b 92eb5ffee6ae2fec3ad71c777531578f
c 4a8a08f09d37b73795649038408b5f33
以一种有效的方式?(输入为 80 GB)
除了@Ole Tange 的方法,这里有一个优化的解决方案(Python 的部分):
md5summer.py
脚本:优化点:
hashlib
- 使用实际库而不是已弃用的库for r in sys.stdin:
- 从类似生成器的对象而不是列表中读取if r.strip():
- 检查空记录以避免冗余hashlib
方法调用用法:
样本输出:
这可能只是 perl 中的一个单行器:
如果您需要存储输出并在咀嚼这个大块时想要一个漂亮的进度条:
首先制作一个单线程程序 (
md5er
),它可以在给定输入的情况下生成正确的输出:然后使用 GNU Parallel 将输入拆分为可以分发到计算服务器的块: