如何匹配md5哈希与grep命令?使用grep匹配md5哈希
在PHP我在过去使用正则表达式模式:
/^[0-9a-f]{32}$/i
但我想:
grep '/^[0-9a-f]{32}$/i' filename
grep '[0-9a-f]{32}$/' filename
grep '[0-9a-f]{32}' filename
与其他变种,但我没有得到任何东西作为输出,我知道肯定该文件包含md5散列。
如何匹配md5哈希与grep命令?使用grep匹配md5哈希
在PHP我在过去使用正则表达式模式:
/^[0-9a-f]{32}$/i
但我想:
grep '/^[0-9a-f]{32}$/i' filename
grep '[0-9a-f]{32}$/' filename
grep '[0-9a-f]{32}' filename
与其他变种,但我没有得到任何东西作为输出,我知道肯定该文件包含md5散列。
你想这样的:
grep -e "[0-9a-f]\{32\}" filename
还是更喜欢,根据您的文件格式的描述,这样的:
grep -e ":[0-9a-f]\{32\}" filename
呃。
#!/bin/sh
while IFS=: read filename filesize hash
do
if [ -z "$hash" ]
then
echo "$filename"
fi
done < hashes.lst
好吧,给你的文件的格式,第一个变种将无法正常工作,因为您正在尝试匹配该行的开头。
鉴于以下文件内容:
a1:52:d048015ed740ae1d9e6998021e2f8c97
b2:667:1012245bb91c01fa42a24a84cf0fb8f8
c3:42:
d4:999:85478c902b2da783517ac560db4d4622
下应努力向您展示哪些行有MD5:
grep -E -i '[0-9a-f]{32}$' input.txt
a1:52:d048015ed740ae1d9e6998021e2f8c97
b2:667:1012245bb91c01fa42a24a84cf0fb8f8
d4:999:85478c902b2da783517ac560db4d4622
-E延长的正则表达式的支持,并为-i忽略注意模式和输入文件。
如果你想找到不匹配的线路,尽量
grep -E -i -v '[0-9a-f]{32}$' input.txt
的-v反转匹配,所以它表明你没有一个MD5的线条。
Err ...原始问题没有描述他正在扫描的文件吗?我们提供的答案在新的,不太详细的问题中并不完全合理。 – 2010-12-22 05:24:49