![尋找 name 中的字串並移動到擴展名之前的名稱的開頭](https://rvso.com/image/898936/%E5%B0%8B%E6%89%BE%20name%20%E4%B8%AD%E7%9A%84%E5%AD%97%E4%B8%B2%E4%B8%A6%E7%A7%BB%E5%8B%95%E5%88%B0%E6%93%B4%E5%B1%95%E5%90%8D%E4%B9%8B%E5%89%8D%E7%9A%84%E5%90%8D%E7%A8%B1%E7%9A%84%E9%96%8B%E9%A0%AD.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
NB 測試-n
首先