Answers:
您可以使用命令cut ; 它允许您从每条输入行中剪切特定字符/字节范围。由于MD5哈希具有固定长度(32个字符),因此可以使用该选项-c 1-32
仅保留输入行中的前32个字符:
echo -n test | md5sum | cut -c 1-32
或者,您可以告诉您cut
在每个空格处分割行并仅输出第一个字段:(请注意空格字符周围的引号)
echo -n test | md5sum | cut -d " " -f 1
有关更多选项,请参见剪切手册。
-d
+,-f
以便以后md5sum
可以用sha1sum
或替换。
awk
也可以使用: echo -n test | md5sum | awk -F" " '{print $1}'
或awk -F" " '{print $1}' <(echo -n test | md5sum)
-F" "
选项awk
非常奇怪,因为它是的默认设置awk
。
使用awk也可以正常工作:
echo -n 'test' | md5sum | awk '{print $1}'
另一种方法是制作一个子字符串。因为您知道md5哈希是一个包含32个字符的字符串,所以可以使用:
HASH=$(echo -n 'test' | md5sum -) && echo ${HASH:0:32}
这只是字符串操作,因此您可以选择!
echo -n
当文本数据未知时,请不要使用。使用printf '%s' "$DATA"
代替。不像echo -n "$DATA"
,它可以DATA="-n"
在其他示例中使用。