次のファイルを変更しようとしています。
01 Track name.mp3
入力する
01 - Track name.mp3
これまで私の無駄な試みは
rename '0. ' '$&- ' *.mp3
rename 's/0. /$&- /' *.mp3
rename '/0. /' '/$&- /' *.mp3
rename 's/0.\ /$&-\ /' *.mp3
rename 's/0.\ /$1-\ /' *.mp3
答え1
Perlrename
コマンドを想定します。
最後のコマンドに非常に近いです。rename 's/(0.) /$1 - /' *.mp3
動作します。スペースをエスケープする必要はなく、正規表現では特別な意味がなく(ファイル名には特別な意味はありますが、ここでは重要ではありません)、再使用したい部分の周りに括弧が必要です。
答え2
コマンドを使用する必要がありますかrename
?
$ ls
01 Track name.mp3 02 Track name.mp3 03 Track name.mp3
$ for a in *.mp3
> do
> mv -i "$a" "${a%% *} - ${a#* }"
> done
$ ls
01 - Track name.mp3 02 - Track name.mp3 03 - Track name.mp3
答え3
$ rename 's/^(\d\d)\s*/$1 - /' *.mp3
これにより、すべてのMP3ファイルの名前がファイル名の先頭に2桁の数字に変わり、数字の後にスペース - ダッシュ - スペースが挿入されます。だから01 Track name.mp3
それはなります01 - Track name.mp3
自分で試した結果、すべてのファイル名は数字0で始まり、ダッシュを挿入したいようです。まっすぐ数字の後にスペースが続きます。
$ rename 's/^(0\d)\s*/$1- /' *.mp3
01 Track name.mp3
に変換されます01- Track name.mp3
。
答え4
2つ(3つ)の消去コマンドがあります。一つはユーティリティLinuxすべての非組み込みLinuxシステムにはソフトウェアパッケージがインストールされており、そのうちの1つ(実際には2つのバリエーション)がPerlに基づいています。バラより名前変更、名前変更、ファイル名変更など、すべての名前変更はどういう意味ですか?
util-linuxコマンドは非常に基本的ですが、まれに必要な操作を実行できます。最初のスペースを space-dash-space に置き換えます。
rename ' ' ' - ' [0-9][0-9]\ [^-]*