Linux

計算特定匹配文件的總 md5

  • August 18, 2019

在文件夾中,我們有以下HADOOP二進製文件及其大小 (BYTES)

du -sb * | grep HADOOP[a-z]
334542327       HADOOPaa
334542327       HADOOPab
334542327       HADOOPac
334542327       HADOOPad
334542327       HADOOPae
334542327       HADOOPaf
334542327       HADOOPag
334542327       HADOOPah
334542327       HADOOPai
334542327       HADOOPaj
334542327       HADOOPak
334542327       HADOOPal
334542327       HADOOPam
334542327       HADOOPan
334542327       HADOOPao
334542327       HADOOPap
334542327       HADOOPaq
334542327       HADOOPar
334542327       HADOOPas
334542327       HADOOPat
334542327       HADOOPau
334542327       HADOOPav
334542327       HADOOPaw
334542327       HADOOPax
334542327       HADOOPay
334542327       HADOOPaz
334542327       HADOOPba
334542327       HADOOPbb
932542327       HADOOPbc
334542327       HADOOPbd
334542327       HADOOPbe
434542327       HADOOPbf
934542327       HADOOPbg
108883803       HADOOPbh

通過 awk,我們成功地將所有數字相加到總大小(以字節為單位)

例子

du -sb * | grep HADOOP[a-z] | awk '{ sum+=$1} END {print sum}'

現在我們想對 md5 做同樣的事情

我們試圖

md5sum * | grep HADOOP[a-z] | md5sum | awk '{print $1}' 
2a85626137ae7d689b85e8e04e8a2523  -

但不是很好也不是很優雅,因為我們只想要匹配 HADOOP 的所有 md5 文件的總和(左側是每個文件的 md5)

$$ a-z $$ 有什麼建議麼?

不知道你在這裡做什麼……但聽起來你想要awk(或cut)在grep只列印總和之後。但是然後是校驗和的校驗和以確保您擁有所有文件?這是你想要的最終結果嗎?

順便說一句,我幾乎肯定 globmd5sum *返回一個隨機順序,所以你可能想要一個sort在某個地方,以確保它每次都相同並且可以在機器上重複。

引用自:https://unix.stackexchange.com/questions/536135