如何通过Bash脚本结合文本文件批量重命名视频文件?
Bash批量重命名脚本实现
需求说明
现有一批文件名为lesson1.mp4、lesson2.mp4…的视频文件,另有一个存储新名称的文本文件(例如new_names.txt),内容每行对应一个新名称:
1 Entry to vim 2 Basics of vim 3 Vim motion ...
需要将原文件批量重命名为1 Entry to vim.mp4、2 Basics of vim.mp4…的格式。
实现脚本
以下是直接可用的Bash脚本,将其保存为rename_lessons.sh:
#!/bin/bash NAME_FILE="new_names.txt" # 检查名称文件是否存在 if [ ! -f "$NAME_FILE" ]; then echo "错误:找不到名称文件 $NAME_FILE" exit 1 fi count=1 while IFS= read -r new_name; do old_file="lesson$count.mp4" if [ -f "$old_file" ]; then new_file="${new_name}.mp4" # 先取消下面的echo注释、注释mv,测试重命名逻辑是否正确 # echo "将重命名:$old_file -> $new_file" mv "$old_file" "$new_file" echo "已完成:$old_file -> $new_file" else echo "跳过:原文件 $old_file 不存在" fi ((count++)) done < "$NAME_FILE"
使用步骤
- 将脚本和
new_names.txt放到视频文件所在目录 - 给脚本添加执行权限:
chmod +x rename_lessons.sh - 重要:先注释掉脚本中的
mv命令,取消echo注释,运行脚本查看输出的重命名计划是否正确 - 确认无误后,恢复
mv命令、注释echo,再次运行脚本完成重命名
注意事项
- 确保
new_names.txt的行数与视频文件数量完全一致,且顺序一一对应 - 脚本已处理文件名中的空格等特殊字符,无需额外转义
- 操作前建议备份原文件,避免意外损失
内容的提问来源于stack exchange,提问作者Kirill
相关产品推荐
相关产品推荐

