Bash 重命名目录中的文件以在破折号前后插入空格
我有一个目录,其中包含以下类型的文件:Bash 重命名目录中的文件以在破折号前后插入空格,bash,whitespace,file-rename,batch-rename,Bash,Whitespace,File Rename,Batch Rename,我有一个目录,其中包含以下类型的文件: 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 - track
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
非常感谢您的帮助 按照Barmar的建议,您可以使用重命名或文件名。 就你而言:
file-rename 's/-/ - /g' *.mp3
它是基于正则表达式的,因此非常强大,因此非常危险,在运行它之前,您可以直接运行它,它将显示您的命令将要更改的内容:
file-rename -n 's/-/ - /g' *.mp3
可以使用bash参数替换:
for i in *.mp3; do mv $i ${i/-/ - }; done
或者,您可以使用rename from util linux包
rename '-' ' - ' *.mp3
或者根据上面的答案,我认为有些发行版将其命名为重命名
prename 's/-/ - /' *.mp3
使用rename命令,它允许您提供基于模式的替换。欢迎使用堆栈溢出!用于编程问题,而不是有关使用或配置Unix及其实用程序的问题。或者是回答类似问题的好地方。谢谢,但这并不是我想要的,它给出了:01-firstname姓氏-track1 name1.mp3等等。。。你能把它改成:01。名字姓氏-track1 name1.mp3?你的命令是去掉音轨号后的句点,我希望保持理想状态。谢谢您使用的是哪种重命名?utils linux中的版本不支持正则表达式。它是一个perl包:/usr/bin/file-rename-using-file::rename-version 0.20I只是在Ubuntu 18.04LTS中使用标准版本。我应该安装一个不同的吗?