我有一个文件夹,其中包含许多格式相似的文件:
Dropkick Murphys - 01 - Walk Away.mp3
Dropkick Murphys - 02 - Workers Song.mp3
等等...
我想将它们全部转换,以便它们显示为:
01 - Walk Away.mp3
02 - Workers Song.mp3
我怎样才能做到这一点?
答案1
在 Ubuntu 或 Debian 下,很简单:
rename 's/Dropkick Murphys - //' *mp3
答案2
选一个。
for i in *.mp3; do mv "$i" "${i#* - }"; done
for i in *.mp3; do mv "$i" "${i:19}"; done
答案3
您可以使用for
循环来循环遍历要修改的文件。${var/from/to}
会将第一次出现的 替换from
为to
in $var
,因此${var/Dropkick Murphys - /}
会将“Dropkick Murphys - ”替换为空:
for i in "Dropkick Murphys - "*; do
mv "$i" "${i/Dropkick Murphys - /}"
done
答案4
zsh 强制回答:
autoload zmv
zmv 'Dropkick Murphys - (*.mp3)' '$1'
变体,对所有艺术家姓名进行重命名。请注意,第一个命令采用第一个命令的最长匹配项*
,例如它将重命名Dropkick Murphys - 01 - Walk Away - concert.mp3
为Walk Away - concert.mp3
。
zmv '* - (* - *.mp3)' '$1'
zmv '*.mp3' '${f#* - }'