首页 > 解决方案 > 重命名目录中的文件以在破折号前后插入空格

问题描述

我有一个目录,其中包含以下类型的文件:

01.firstname surname-track1 name1.mp3
02.firstname surname-track2 name2.mp3
03.firstname surname-track3 name3.mp3

我正在寻找一个 BASH 命令来批量重命名目录中的所有文件,以便在破折号前后有一个空格,例如:

01.firstname surname - track1 name1.mp3
02.firstname surname - track2 name2.mp3
03.firstname surname - track3 name3.mp3

非常感谢任何帮助!

标签: bashwhitespacefile-renamebatch-rename

解决方案


正如 Barmar 建议的那样,您可以使用重命名(或文件名)。在你的情况下:

file-rename 's/-/ - /g' *.mp3

它是基于正则表达式的,所以它非常强大(因此很危险),在运行它之前,你可以“干”运行它,它会告诉你你的命令将要改变什么:

file-rename -n 's/-/ - /g' *.mp3

推荐阅读