如何匹配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