我想组织我的mp3文件并使用模式重命名:artist - song。
我需要一个正则表达式,选择第一个短划线前的所有单词,然后选择最后一个短划线和后面的所有字符。
在这个例子中,[09]一个倒下的系统 - 毒性 - 03 - Chop Suey.mp3:
我该怎么做?
答案 0 :(得分:0)
如果您使用的是Windows,我强烈建议您使用免费软件程序:MP3Tag。它可以轻松地进行您要求的重命名(以及更多)。
答案 1 :(得分:0)
有一个linux命令rename
,这正是你想要的
例如,要重命名与“* .bak”匹配的所有文件以剥离扩展名,您可以说
rename 's/\.bak$//' *.bak
要将大写名称翻译为较低的名称,请使用
rename 'y/A-Z/a-z/' *
重命名 [09]体力衰竭 - 03 - Chop Suey.mp3 至毒性 - Chop Suey.mp3
# you should rewrite regex to meet your requirement
rename 's/.*-(.*)-.*-(.*)/$1 - $2/' *.mp3
这是一款Windows音乐播放器foobar2000
,可以很好地完成这项工作
属性 - > 其他字段的格式......
答案 2 :(得分:0)
可能会有所帮助 -
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
答案 3 :(得分:0)
您可以通过(-.*-)
找到“中间模式”并替换为-
。要删除号码,您可以使用(\[[0-9]*\])