如何删除文件名的部分内容

如何删除文件名的部分内容

我有多个 mp3 文件,其名称如下:

艺术家 - 年份 - 专辑 - 曲目 - 标题.mp3

其中约有一半由于“从标签重命名”错误而被命名为:

艺术家 - 年份 - 专辑 - 曲目 - 标题 - - .mp3

我如何让最后一个示例看起来像 ubuntu 中的第一个示例。由于标签中现在有错误,我无法使用标签程序重命名文件,而不会弄乱当前正确的文件名,除非我花费大量时间寻找和选择错误命名的文件。

如果我可以将错误命名的文件移动到另一个目录,我将能够使用标记程序来修复文件名,但我如何才能仅移动错误命名的文件?

谢谢

答案1

如果你有实用程序rename,你可以做类似的事情:

rename -e 's/ - - //' *.mp3

为了安全起见,在运行上述程序之前,请先使用标志运行它-n,进行试运行。它不会更改任何文件,但会向您显示它将更改的内容,如下所示:

$ rename -n -e 's/ - - //' *.mp3
rename(artist - year - album - track - title - - .mp3, artist - year - album - track - title.mp3)

答案2

类似于mv $(ls -1 | grep -- '- -') /path/to/dir_to_for_retagging/。最好先做echo mv ...一下,看看它会做什么。

答案3

mv *--.mp3 /path/to/dir

应该可以正常工作。

答案4

就像是

对于 $(ls *--.mp3) 中的 i;执行 mv $i `echo $i | sed s/--//;完成

(未经测试)。这将从文件名中删除所有“--”。

相关内容