我想组织我的mp3文件并使用模式:艺术家 - 歌曲重新命名它们。使用正则表达式重命名mp3
我需要一个正则表达式来选择第一个破折号之前的所有单词,然后是最后一个破折号和所有后面的字符。
在这个例子中,[09]体制崩溃-Toxicity点 - 03 - 印章Suey.mp3:第一破折号前
- 所有字的项目:一个向下
- 最后冲刺系统: -
- 一切的最后冲刺后:印章Suey.mp3
我该怎么办呢?
我想组织我的mp3文件并使用模式:艺术家 - 歌曲重新命名它们。使用正则表达式重命名mp3
我需要一个正则表达式来选择第一个破折号之前的所有单词,然后是最后一个破折号和所有后面的字符。
在这个例子中,[09]体制崩溃-Toxicity点 - 03 - 印章Suey.mp3:第一破折号前
我该怎么办呢?
有一个linux命令rename
这正是你想要的。
例如,重命名匹配“名为* .bak”剥去扩展名的文件,你可能会说
rename 's/\.bak$//' *.bak
要转换大写名称来降低,你会使用
rename 'y/A-Z/a-z/' *
要重命名[09]系统下行-Toxicity - 03 - 斩波Suey.mp3到毒性 - 斩波Suey.mp3
# you should rewrite regex to meet your requirement
rename 's/.*-(.*)-.*-(.*)/$1 - $2/' *.mp3
这些是Windows音乐播放器foobar2000
,它可以很好地完成这项工作。
属性 - 从其他领域>格式......
如果您使用Windows,我强烈建议您使用免费软件程序:MP3Tag。它很容易做你要求的重命名(和更多)。
可能,这可能帮助 -
sed 's/[[0-9]\+] \([A-Za-z ]*[^-]\) -.*[^-]- \(.*\)/\1-\2/'
测试:
[jaypal:~/temp] echo "[09] System Of A Down -Toxicity - 03 - Chop Suey.mp3" |
sed 's/[[0-9]\+] \([A-Za-z ]*[^-]\) -.*[^-]- \(.*\)/\1 - \2/'
System Of A Down - Chop Suey.mp3
OR
awk -F"-" '{print $1"-"$4}' | sed 's/[[0-9]\+] //g'
测试:
[jaypal:~/temp] echo "[09] System Of A Down -Toxicity - 03 - Chop Suey.mp3" |
awk -F"-" '{print $1"-"$4}' | sed 's/[[0-9]\+] //g'
System Of A Down - Chop Suey.mp3
您可以找到 “中间模式” 做(-.*-)
与-
取代。要删除您可以使用的号码(\[[0-9]*\])