重新命名正規表示式無法重新命名文件

重新命名正規表示式無法重新命名文件

我有一堆圖像,就像1.jpg 2.PNG 3.gif 4.jpeg在目錄中一樣。我想將它們全部重命名為1-s.jpg 2-s.PNG 3-s.gif 4-s.jpeg.

我嘗試運行這些命令,但它對目錄中的文件沒有影響:

rename 's/^(\d+)\.(.*)/$1-s.$2/' .
rename 's/^(\d+)\.(.+)/$1-s.$2/' .
rename 's/.*\.(.+)/$1-s.$2/' .

我做錯了什麼?

答案1

使用通配符*作為檔案名稱:

rename 's/^(\d+)\.(.*)/$1-s.$2/' *

你可以簡化一點:

rename 's/^(\d+)(?=\.)/$1-s/' *

其中(?=\.)是正向前瞻,確保數字後面有一個點,而不捕捉它。

相關內容