计算文件中每一行的 md5sum

Ole*_*nge 5 hashsum gnu-parallel

给定一个文件,如:

a
b
c
Run Code Online (Sandbox Code Playgroud)

我如何获得如下输出:

a       0cc175b9c0f1b6a831c399e269772661
b       92eb5ffee6ae2fec3ad71c777531578f
c       4a8a08f09d37b73795649038408b5f33
Run Code Online (Sandbox Code Playgroud)

以有效的方式?(输入为 80 GB)

小智 3

这可能只是 perl 中的一行:

head 80gb | perl -MDigest::MD5=md5_hex -nlE'say"$_\t".md5_hex($_)'
a       0cc175b9c0f1b6a831c399e269772661
b       92eb5ffee6ae2fec3ad71c777531578f
c       4a8a08f09d37b73795649038408b5f33
d       8277e0910d750195b448797616e091ad
e       e1671797c52e15f763380b45e841ec32
f       8fa14cdd754f91cc6554c9e71929cce7
g       b2f5ff47436671b6e533d8dc3614845d
h       2510c39011c5be704182423e3a695e91
i       865c0c0b4ab0e063e5caa3387c1a8741
j       363b122c528f54df4a0446b6bab05515
Run Code Online (Sandbox Code Playgroud)

如果您需要存储输出并希望在咀嚼这个大块时有一个漂亮的进度条:

sudo apt install pv          #ubuntu/debian
sudo yum install pv          #redhat/fedora
pv 80gb | perl -MDigest::MD5=md5_hex -nlE'say"$_\t".md5_hex($_)' | gzip -1 > 80gb-result.gz
Run Code Online (Sandbox Code Playgroud)