批次重命名、更改後綴?

批次重命名、更改後綴?

如何批次替換多個檔案的後綴?

我有很多文件,例如

  • NameSomthing-min.png
  • NameSomthing1-min.png
  • NameSomthing2-min.png

我想將它們全部更改為

  • NameSomthing.png
  • NameSomthing1.png
  • NameSomthing2.png

-min即,從名稱中刪除字元。我該怎麼做?

答案1

該腳本可能會有所幫助:

for file in *-min.png; do
    echo mv "$file" "${file%-min.png}.png"
done

刪除回顯以實際執行命令。

答案2

這取決於你的外殼。我使用zsh,這就是我這樣做的方式:

for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done

我建議您查看 shell 的線上說明頁,並查看類似於“參數擴展”的部分(在zsh手冊頁)。

bash類似的解決方案也可用於其他 shell(您沒有指定使用哪一種)。

請注意,您的特定解決方案始終取決於數據和您的目標。如果您想刪除名稱和後綴之間的“-”作為分隔符,則可以這樣做。如果沒有,您可能需要稍微調整參數擴充。

相關內容