将 mp3 文件名重命名为某种模式

将 mp3 文件名重命名为某种模式

我有一个类似名字的列表,如下所示:

/A/B/C/D/E/F/filename_album1-003.mp3

它更像是专辑\d+

我想把它改成类似的东西

/A/B/C/D/E/F/filename_song-3.mp3

song只是一个固定的字符串。

我尝试了类似的方法basename -s '.mp3',但是sed -e /_album//g这错过了数字 ` 并且没有删除所有前导 001。有什么好的方法可以做到这一点?

答案1

zsh

$ autoload zmv # best in ~/.zshrc
$ zmv -n '(**/)(*_)*-0#(<->.mp3)' '$1$2song-$3'
mv -- A/B/foo_bar-0002.mp3 A/B/foo_song-2.mp3

-n如果满意则删除。

答案2

尝试这个 :

rename -n 's/_album1-0*/-song-/' /A/B/C/D/E/F/filename_album1-003.mp3

-n如果测试正常,请删除开关)

警告 还有其他同名的工具可能能够也可能无法做到这一点,所以要小心。

如果运行以下命令 ( GNU)

$ file "$(readlink -f "$(type -p rename)")"

你有一个像这样的结果

.../rename: Perl script, ASCII text executable

并且不包含:

ELF

那么这似乎是正确的工具 =)

如果不是,则将其设为默认值(通常已经是这种情况)Debian并衍生如下Ubuntu

$ sudo update-alternatives --set rename /path/to/rename

(替换为您的命令/path/to/rename的路径。perl's rename


如果您没有此命令,请搜索包管理器来安装它或手动做


最后但并非最不重要的一点是,这个工具最初是由 Perl 之父 Larry Wall 编写的。

答案3

我不明白你从哪里得到新的“歌曲”名称,你从...开始filename_album1-003.mp3并切换到filename_song-3.mp3...

如果您从 ID3 标签获取歌曲名称,那么使用可以从标签信息重命名 mp3 的程序会更容易。比如 easytag、mp3rename、lltag...Debian 存储库和其他存储库中有几个

相关内容