如何更改一系列檔案名稱的編號後綴?

如何更改一系列檔案名稱的編號後綴?

以下是檔案名稱中帶有編號後綴的一系列檔案的範例。

  • 螢幕1.png
  • 螢幕2.png
  • 螢幕3.png
  • 螢幕4.png
  • 螢幕5.png
  • 螢幕6.png
  • 螢幕7.png
  • 螢幕8.png

現在,如果我出於某種原因重命名這些檔案以使編號從 2 開始,我就必須將 screen1.png 重命名為 screen2.png,將 screen2.png 重命名為 screen3.png,依此類推。但是當我嘗試將 screen1.png 重新命名為 screen2.png 時,這已經失敗了,因為已經有一個具有該名稱的檔案。

這就是我在 Windows 中拍攝一系列螢幕截圖時喜歡命名檔案的方式。所以有時我可能會發現自己處於這種情況。我可能跳過了一個螢幕截圖,也許是一個顯示一些設定過程的螢幕截圖,該過程及時發生在螢幕截圖5 之前但螢幕截圖4 之後。命名screen5.png screen6.png 以及後面的所有文件,以按時間順序排列它們。

改名:

  • 螢幕1.png
  • 螢幕2.png
  • 螢幕3.png
  • 螢幕4.png
  • 螢幕5.png > 螢幕6.png
  • screen6.png > screen7.png
  • screen7.png > screen8.png
  • screen8.png > screen9.png

結果:

  • 螢幕1.png
  • 螢幕2.png
  • 螢幕3.png
  • 螢幕4.png
  • 螢幕6.png
  • 螢幕7.png
  • 螢幕8.png
  • 螢幕9.png

新增的檔案:

  • 螢幕1.png
  • 螢幕2.png
  • 螢幕3.png
  • 螢幕4.png
  • 螢幕5.png+
  • 螢幕6.png
  • 螢幕7.png
  • 螢幕8.png
  • 螢幕9.png

是否有一個腳本、工具或正規表示式可以讓我的生活變得更輕鬆?我相信大多數超級用戶都不只一次遇到這種情況。您願意分享您的問題解決方案嗎?

答案1

$ perl -e 'for $i (reverse 5..8) { $j=$i+1; rename screen$i.png screen$j.png }

你可以先運行這個來讓自己放心

$ perl -e 'for $i (reverse 5..8) { $j=$i+1; print "rename screen$i.png screen$j.png\n" }'
rename screen8.png screen9.png
rename screen7.png screen8.png
rename screen6.png screen7.png
rename screen5.png screen6.png

對於 Windows,您必須使用“代替 ',使用 qq(...) 來代替“...”。

答案2

您所需要的只是一個具有“多個檔案重新命名”功能的檔案管理器(所有名稱衝突都會自動解決)。大多數此類管理器允許您在外部編輯器中編輯文件,其中編輯數字比在文件管理器中快得多。至少總司令虛幻指揮官有這樣的特點。

或者,您可以編寫小型的一行腳本,透過 shell 來完成此操作。

您也可以使用獨立腳本來重新命名多個文件,例如維姆夫,還有更多類似的腳本。它們可以配置為使用其他編輯器,儘管 IMO Vim 比任何其他編輯器更適合這一點,因為它具有VisIncr 插件和內建數位遞增/遞減指令(:help CTRL-A:help CTRL-X)。

另一種變體是使用維夫姆,它支援在選定檔案的名稱中遞增/遞減數字(與 Vim 中的鍵相同)。但它是一個控制台應用程序,主要針對 Vim 上癮的人。

相關內容