如何在shell中管道md5哈希结果

nma*_*mat 14 bash ubuntu shell-script hashsum

我正在寻找一种简单的方法将结果通过管道传输md5sum到另一个命令中。像这样的东西:

$echo -n 'test' | md5sum | ...
Run Code Online (Sandbox Code Playgroud)

我的问题是不仅md5sum输出字符串的哈希值,还输出一个连字符,表示输入来自标准输入。我检查了 man 文件,但没有找到任何控制输出的标志。

Ric*_*rri 15

您可以使用命令cut;它允许您从每个输入行中剪切特定的字符/字节范围。由于 MD5 哈希具有固定长度(32 个字符),您可以使用该选项-c 1-32仅保留输入行的前 32 个字符:

echo -n test | md5sum | cut -c 1-32
Run Code Online (Sandbox Code Playgroud)

或者,您可以告诉cut在每个空格处拆分行并仅输出第一个字段:(注意空格字符周围的引号)

echo -n test | md5sum | cut -d " " -f 1
Run Code Online (Sandbox Code Playgroud)

有关更多选项,请参阅cut 联机帮助页