Shell 如何使用unix命令从文件名中删除整数模式
我有一大堆mp3文件,前面有曲目编号。例如: 01-MovieName-songname.mp3 02-MovieName-SongNameB.mp3 我需要搜索并从文件名中删除曲目编号和连字符 我尝试使用find和grep,但找不到使用mv命令重命名管道的查询。使用shell 或者,同样的东西,但写为多行:Shell 如何使用unix命令从文件名中删除整数模式,shell,unix,rename,Shell,Unix,Rename,我有一大堆mp3文件,前面有曲目编号。例如: 01-MovieName-songname.mp3 02-MovieName-SongNameB.mp3 我需要搜索并从文件名中删除曲目编号和连字符 我尝试使用find和grep,但找不到使用mv命令重命名管道的查询。使用shell 或者,同样的东西,但写为多行: for f in [[:digit:]][[:digit:]]' - '*mp3 do mv -i -- "$f" "${f#?????}" done glob[[:digit:
for f in [[:digit:]][[:digit:]]' - '*mp3
do
mv -i -- "$f" "${f#?????}"
done
glob[[:digit:][[:digit:][]'-'*mp3
与您感兴趣的文件匹配mv“$f”“${f#?????}”
删除其名称的前五个字符。mv
的-i
选项告诉它在覆盖现有文件之前询问
使用Perl的重命名实用程序
这将查看所有.mp3
文件,如果它们的名称以两位数字开头,后跟空格、破折号和空格,则这些字符将被删除
rename
将拒绝覆盖现有文件,除非您提供-f
选项
本节介绍Perl的
rename
实用程序。请注意,某些linux发行版默认安装了不同且不兼容的rename
实用程序。有时,perlrename
实用程序的名称为prename
,两个名为01-MovieName-songname.mp3
和02-MovieName-songname.mp3
?@dfogni的文件现在被重命名:)
for f in [[:digit:]][[:digit:]]' - '*mp3
do
mv -i -- "$f" "${f#?????}"
done
rename 's/^\d\d - //' *mp3