命令 '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
我想在一个新的单独文本文件中使用 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