我有一堆前缀为曲目编号的mp3文件。例如:
01 - MovieName - SongNameA.mp3
02 - MovieName - SongNameB.mp3
我需要从文件名中搜索并删除曲目编号和连字符。
我尝试使用find和grep,但我无法找到要使用mv命令重命名的管道查询。
答案 0 :(得分:1)
for f in [[:digit:]][[:digit:]]' - '*mp3; do mv -i -- "$f" "${f#?????}"; done
或者,同样的事情,但写成多行:
for f in [[:digit:]][[:digit:]]' - '*mp3
do
mv -i -- "$f" "${f#?????}"
done
glob [[:digit:]][[:digit:]]' - '*mp3
匹配您感兴趣的文件。mv "$f" "${f#?????}"
删除其名称的前五个字符。 -i
的{{1}}选项告诉它在覆盖现有文件之前询问。
mv
这会查看所有rename 's/^\d\d - //' *mp3
个文件,如果它们的名称以两位数开头,后跟空格,后跟一个破折号,后跟空格,则删除这些字符。
.mp3
选项,否则 rename
将拒绝覆盖现有文件。
本节涉及Perl的-f
实用程序。请注意,某些Linux发行版默认安装了不同且不兼容的rename
实用程序。有时,perl rename
实用程序的名称为rename
。