【发布时间】:2013-10-27 23:46:26
【问题描述】:
在我的目录中查找重复项时,我设法将哈希与文件路径分开。我的下一个任务是只打印重复项(例如:3 个文件,2 个重复项)。
到目前为止,我所做的是将输出放在这样的数组中:
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
【问题讨论】:
-
你的 for 循环是什么样的?你如何比较哈希值?
-
"value too great for base" 听起来您正在尝试将哈希值作为整数进行比较,而您应该做的是字符串比较。正如@DigitalTrauma 所说,展示你的代码。
-
我的问题实际上已经解决了我不得不使用forloop而不是:for i in arr。然后我简单地使用 ${arr[i]} 来迭代然后比较!
标签: arrays bash duplicates md5 md5sum