检查文件中是否存在现有的 md5sum - Shell 脚本

Check existing md5sum exist in file - Shell script

我正在使用 Ubuntu 14.04。 我有一个存储在 a.txt 文件中的 md5 散列文本列表。现在我将输入一个文本,我将对其进行哈希处理并检查结果是否在我的文件中。我正在使用 grep 来执行此操作,但该脚本仅适用于静态字符串。

我的脚本文件看起来像

file="a.txt"
s1="81dc9bdb52d04dc20036dbd8313ed055 -"
echo "s1: "$s1

s2=$(echo -n "1234" | md5sum)
echo "s2: "$s2


if grep -Fx "$s1" "$file"; then
        echo 's1 FOUND'
else
        echo 's1 NOT FOUND'
fi

if grep -Fx "$s2" "$file"; then
        echo 's2 FOUND'
else
        echo 's2 NOT FOUND'
fi

a.txt 文件中,我只有 1 行:

81dc9bdb52d04dc20036dbd8313ed055 -

如上面的脚本,你可以看到,我将 s1 的值设置为静态字符串,而 s2 是散列的结果。

我得到的输出:

s1: 81dc9bdb52d04dc20036dbd8313ed055 -
s2: 81dc9bdb52d04dc20036dbd8313ed055 -
81dc9bdb52d04dc20036dbd8313ed055 -
s1 FOUND
s2 NOT FOUND

正如我在屏幕上看到的那样 - s1s2 具有相同的值。 s1 在文件中找到,但在 s2 中找不到。我不明白这里出了什么问题以及如何解决。

$s1 包含一个 space。 echo -n "1234" | md5sum 的输出包含两个。


替换

echo "s1: "$s1
echo "s2: "$s2

来自

echo "s1: $s1"
echo "s2: $s2"

看问题


替换

s2=$(echo -n "1234" | md5sum)

来自

s2=$(echo -n "1234" | md5sum | sed 's/  / /')

解决这个问题。