Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何使用unix命令从文件名中删除整数模式_Shell_Unix_Rename - Fatal编程技术网

Shell 如何使用unix命令从文件名中删除整数模式

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:

我有一大堆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:][[:digit:][]'-'*mp3
与您感兴趣的文件匹配
mv“$f”“${f#?????}”
删除其名称的前五个字符。
mv
-i
选项告诉它在覆盖现有文件之前询问

使用Perl的重命名实用程序 这将查看所有
.mp3
文件,如果它们的名称以两位数字开头,后跟空格、破折号和空格,则这些字符将被删除

rename
将拒绝覆盖现有文件,除非您提供
-f
选项


本节介绍Perl的
rename
实用程序。请注意,某些linux发行版默认安装了不同且不兼容的
rename
实用程序。有时,perl
rename
实用程序的名称为
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