![名前内の文字列を検索し、拡張子の前の名前の末尾に移動します](https://rvso.com/image/898936/%E5%90%8D%E5%89%8D%E5%86%85%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%97%E3%80%81%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%81%AE%E5%89%8D%E3%81%AE%E5%90%8D%E5%89%8D%E3%81%AE%E6%9C%AB%E5%B0%BE%E3%81%AB%E7%A7%BB%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99.png)
*-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
-n
NBテスト