shell脚本 批量修改文件名, 遍历文件夹中的*.zip, 修改文件名, 替换文件名中的abc为test, 替换dda为s5
#!/bin/bash # 遍历当前目录下所有的.zip文件 for file in *.zip; do # 检查文件是否存在,避免空循环 if [ -f "$file" ]; then # 使用sed命令替换文件名中的特定字符串 # 使用basename命令获取不包含路径的文件名 newname=$(basename "$file" | sed 's/abc/test/g' | sed 's/dda/s5/g') # 检查新文件名是否与原文件名不同,如果是则重命名 if [ "$newname" != "$(basename "$file")" ]; then mv "$file" "$newname" fi fi done echo "批量重命名完成。"
这个脚本做了以下几件事:
- 使用
for
循环遍历当前目录下所有以.zip
结尾的文件。 - 对于每个文件,使用
basename
命令获取其文件名(不包含路径)。 - 使用
sed
命令两次,分别将文件名中的abc
替换为test
,将dda
替换为s5
。 - 检查生成的新文件名是否与原文件名不同,如果是,则使用
mv
命令重命名文件。 - 打印完成消息。