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 リポジトリなどにいくつかあります。

関連情報