5つのmp3ファイルがあるとします。
01-trackfoo.mp3
02-trackbar.mp3
03-trackbaz.mp3
04-trackabc.mp3
05-trackxyz.mp3
これで、ファイルをすばやく聴くことができ(コンソールのmplayerでうまくいきます)、トラックの順序が間違っていることがわかりました。05は実際には02で、残りは名前を変更する必要があります。したがって、最初に一時的な名前変更を行います。
01-trackfoo.mp3
02-trackbar.mp3
03-trackbaz.mp3
04-trackabc.mp3
00-trackxyz.mp3
ここで、「シフト」が必要です。02は03に、03は04に、04は05にすべきです。混乱を最小限に抑えるために、ex-05(現在は00)はmv
後で編集されます。
私のアプローチはこれでした:(perl rename
、Larry Wall、デフォルトはここDebian)
rename 's/0([2-4])([\s\S]+)/0($1+1)$2/' *
同様に(後で、さらにRTFMを実行した後)
rename 's/0([2-4])([\s\S]+)/0($1+1)$2/e' *
特に/e[val]
修飾子が評価以外のものを受け入れず、評価と文字列を組み合わせようとするとエラーがスローされるため、それらはどれも機能しませんでした。bash
例えば、うまくそれを行うことができます foo$((1+6))
に評価されますfoo7
。
では、これをどのように行うことができますか(これだけのためにスタンドアロンスクリプト全体を作成するつもりはなく、1行が望ましい)。