在名称中查找字符串,并移动到扩展名之前的名称处

在名称中查找字符串,并移动到扩展名之前的名称处

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

相关内容