2013-10-27 19 views
2

我設法從文件路徑中分離哈希,同時在我的目錄中找到重複項。我的下一個任務是僅打印重複項目(例如:3個文件,2個重複項目)。BASH:處理使用md5sum的重複

我做了什麼至今被放置在輸出數組是這樣的:

arr=($(find $1 -type f -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate))

我需要計算每個文件(不是原來的)的重複次數,獲取每個的大小和分別列出他們的路徑。

我試圖在我的arr中做一個for循環,但是我無法比較散列,它給了我value too great for base錯誤。

任何提示將是偉大的。

解決

for ((i = 0 ; i < ${#arr[@]} ; i++)) 
do 
//...compare here 
done 
+1

什麼是你for循環看起來像?你如何比較哈希? –

+0

「基礎值太大」聽起來像是在試圖將散列作爲整數進行比較,而你應該做的是字符串比較。正如@DigitalTrauma所說,展示你的代碼。 –

+0

我的問題實際上已經解決了,我不得不使用forloop代替:for arr。然後,我只需使用$ {arr [i]}來迭代並比較! – Atieh

回答

0

這是循環的解決方案:

for ((i=0 ; i<${#arr[@]} ; i++)) 
do 
//...compare here 
done 

確保初始化 'i' 和比較它時,保持空間..