ファイル名を変更する Bash スクリプト

ファイル名を変更する Bash スクリプト

数千のサブディレクトリとファイルを含む数百のフォルダがあります。ファイル名の現在の形式は次のとおりです。

sf{number}-{number} - {text}

{text}の前にあるすべての項目を削除する必要があります。

例:

sf012-05 - toto - africa.cdg 
sf012-05 - toto - africa.mp3

->

toto - africa.cdg
toto - africa.mp3

その他の形式:

SF-108 - 02 Johnny Hates Jazz Shattered Dreams[K].cdg
02 - David Essex - Rock On.cdg
SF0504 - 13 Walker Brothers, The  Make It Easy On Yourself.cdg
SFLY 051 - 07 America  A Horse With No Name.cdg
SF217-12 this love - maroon 5.cdg
SF262-13. Same Mistake - James Blunt.cdg
SF287 - 13 Luke Bryan Do I.cdg
SF355-01-15 - Tough Love - Pony.cdg
Track 11 Livin' La Vida Loca (Radio Edit) - Martin, Ricky.cdg
Sunfly Hits 275 - 07 SF275-7-Right Now (Na Na Na)-Akon.mp3
Second, Minute Or Hour - Jack Penate.mp3
SF057 - Karaoke Classics Vol.57 - 03 Abba Thank You For The Music.cdg

特に最後はちょうどゴミですね。

つまり、これらのファイルを見て名前を変更するには、再帰正規表現bashスクリプトなどが必要です。

ベストアンサー1

Perlベースのrenameユーティリティ(prename一部のディストリビューションで呼び出されます)がある場合は、正規表現を使用してすべてのファイルの名前を一度に変更できます。

あなたの要求から削除を要求しましたが、sf{number}-{number}すべての例は大文字で始まり、いくつかの例では、{number}または{number}-{number}-{number}さらに{number}{space}-{space}{number}。最初の2つのケースを含めたいとします。

rename -n 's/^sf[0-9-]+\s+(-\s+)?//' [Ss][Ff]*

-n変更を適用する準備ができたら、削除または変更して-vファイルの処理方法を確認してください。

おすすめ記事