![將 mp3 檔案名稱重新命名為某種模式](https://rvso.com/image/36023/%E5%B0%87%20mp3%20%E6%AA%94%E6%A1%88%E5%90%8D%E7%A8%B1%E9%87%8D%E6%96%B0%E5%91%BD%E5%90%8D%E7%82%BA%E6%9F%90%E7%A8%AE%E6%A8%A1%E5%BC%8F.png)
我有一個類似名字的列表,如下所示:
/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 儲存庫和其他儲存庫中有幾個