尋找 name 中的字串並移動到擴展名之前的名稱的開頭

尋找 name 中的字串並移動到擴展名之前的名稱的開頭

我在不同的子目錄中有很多文件。我想重命名所有 *-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

NB 測試-n首先

相關內容