名前内の文字列を検索し、拡張子の前の名前の末尾に移動します

名前内の文字列を検索し、拡張子の前の名前の末尾に移動します

*-ABC-DE(7 numbers).ext 異なるサブディレクトリに多くのファイルがあります。すべてのファイルの 名前を変更したいのですが *-DE(7 numbers)-ABC.ext

出来ますか?

答え1

与えられた

$ ls *.ext
bar-ABC-DE7654321.ext  foo-ABC-DE1234567.ext

それから

$ rename -v 's/(ABC)-(DE\d{7})/$2-$1/' *.ext
rename(bar-ABC-DE7654321.ext, bar-DE7654321-ABC.ext)
rename(foo-ABC-DE1234567.ext, foo-DE1234567-ABC.ext)

その結果

$ ls *.ext
bar-DE7654321-ABC.ext  foo-DE1234567-ABC.ext

-nNBテスト

関連情報