当前目录下文件名中的大写替换为小写
for file in *; do
newname=$(echo "$file" | sed \
-e 's/一/1/g' \
-e 's/二/2/g' \
-e 's/三/3/g' \
-e 's/四/4/g' \
-e 's/五/5/g' \
-e 's/六/6/g' \
-e 's/七/7/g' \
-e 's/八/8/g' \
-e 's/九/9/g' \
-e 's/十/10/g')
if [[ "$newname" != "$file" ]]; then
mv -- "$file" "$newname"
fi
done
步骤解释:
遍历文件: for file in * 循环处理当前目录下的所有文件。
生成新文件名: 使用sed命令依次将每个中文数字替换为对应的阿拉伯数字。
避免覆盖: 只有当新旧文件名不同时才执行mv命令。
处理特殊字符: 使用--和双引号确保文件名中的特殊字符或空格被正确处理。
注意:
确保终端和脚本的编码为UTF-8,以正确处理中文字符。
可以先运行echo "$newname"替换mv命令进行测试,确认无误后再执行重命名。
浙公网安备 33010602011771号