似たような名前のリストがあります:
/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 リポジトリなどにいくつかあります。