要在 iOS 项目中使用 Shell 脚本查找重复图片,可借助计算图片文件哈希值的方法,将哈希值相同的图片判定为重复图片
bash
#!/bin/bash
# 定义iOS项目的根目录,需根据实际情况修改
PROJECT_DIR="/path/to/your/ios/project"
# 定义图片文件的扩展名,可按需添加或修改
IMAGE_EXTENSIONS=("jpg" "jpeg" "png" "gif")
# 创建临时文件用于存储图片的哈希值和文件名
TEMP_FILE="/tmp/image_hashes.txt"
# 遍历指定的图片扩展名
for ext in "${IMAGE_EXTENSIONS[@]}"; do
# 查找项目目录下指定扩展名的图片文件,并计算其MD5哈希值
find "$PROJECT_DIR" -type f -iname "*.$ext" -print0 | while IFS= read -r -d '' file; do
md5_hash=$(md5 -q "$file")
echo "$md5_hash $file" >> "$TEMP_FILE"
done
done
# 对临时文件按哈希值进行排序
sort "$TEMP_FILE" -o "$TEMP_FILE"
# 用于记录上一个图片的哈希值和文件名
prev_hash=""
prev_file=""
# 遍历排序后的临时文件,查找重复图片
while read -r line; do
current_hash=$(echo "$line" | cut -d' ' -f1)
current_file=$(echo "$line" | cut -d' ' -f2-)
if [ "$current_hash" = "$prev_hash" ]; then
echo "发现重复图片: $prev_file 和 $current_file"
fi
prev_hash="$current_hash"
prev_file="$current_file"
done < "$TEMP_FILE"
# 删除临时文件
# rm "$TEMP_FILE"