2016-03-05 20 views
0
md5sum file.png | awk '{print $1}' | wc -m 

我得到:33
我希望它會返回32作爲MD5哈希的長度。閱讀手冊頁和谷歌搜索後,我仍然沒有找到原因。廁所-m

+0

試試這個:'printf的 「%的」「$(的md5sum文件| awk的'{print $ 1}')「| wc -m' – Cyrus

+0

它的工作!我試着瞭解它是如何工作的。因爲我知道'printf「%s」「$(md5sum file | awk'{print $ 1}')」'或'printf「$(md5sum file | awk'{print $ 1}')」'不要打印新行。我想知道爲什麼.. 非常感謝。 –

回答

1

TL; DR

使用awk的length()功能:

md5sum file.png | awk '{print length($1)}' 
32 

這是因爲awk將換行符添加到輸出。您可以檢查:

md5sum file.png | awk '{print $1}' | xxd 

你可以告訴awk將不這樣做,使用ORS輸出記錄分隔變量:

md5sum file.png | awk '{print $1}' ORS='' | wc -m 
32 
+0

你幫了我很多。非常感謝你! :) –

+0

很高興看到它的幫助。 – hek2mgl

相關問題