命令 'md5sum' 末尾没有“-”标记

command 'md5sum' without '-'token at the end

我想在一个新的单独文本文件中使用 md5 散列文本文件的内容。这适用于每一行。我为此

编写了以下 bash-脚本
#!/bin/bash
while read line; do echo -n $line|md5sum; done <  > .hash

这很好用。但是

echo -n 'somewords' | md5sum 

我的输出是这样的8bf1072ac725ca3bc7f532079dd973ba - 我希望我的输出最后没有 - 。所以我的脚本应该给我这样的东西:

hash 1
hash 2
hash 3

而不是

hash 1  -
hash 2  -
hash 3  -

由于 md5 散列正好是 32 字节长,因此将此处的行剪掉:

while read line; do echo -n "$line"|md5sum; done <  |cut -c1-32 > .hash

我很惊讶没有人回答 awk

echo "abc" | md5sum | awk -F "-" '{print }'

对于您的示例,它看起来像这样

while read line
do 
    echo -n "$line" | md5sum; 
done <  |awk -F "-" '{print }' > .hash

您可以通过 grep 过滤输出,例如

printf somewords | md5sum | grep -o '^\S\+'

所以脚本将是:

#!/usr/bin/env bash
while read line; do
  printf "%s" $line | md5sum;
done < "" | grep -o '^\S\+' > "".hash