Terminal
Mac 終端 - 將 *.png.png 重命名為 *.png
我有一堆圖像,我想重命名如下:
*.png.png --> *.png
*.jpeg.jpg --> *.jpg
*.JPEG --> *.jpg
到目前為止,我唯一嚐試過的是
mv *.png.png *.png
,但我知道那行不通,但還是抓住了機會。是否有一種簡單(或可能沒有)使用這種模式批量重命名文件的方法?
這是
find
用於重命名的內容*.png.png -> *.png
:find ./ -name '*.png.png' -type f \ -exec sh -c 'mv {} ./$(basename -s .png.png {}).png' \;
它並不是真正的 gerenic,因此您必須針對其他文件副檔名對其進行自定義。
這是您在問題中遇到的三種情況的僅外殼解決方案:
for f in *.png.png ; do mv -i "${f}" "${f%.png}" ; done for f in *.jpeg.jpg ; do mv -i "${f}" "${f%.jpeg.jpg}.jpg" ; done for f in *.JPEG ; do mv -i "${f}" "${f%.JPEG}.jpg" ; done
在要重命名文件的目錄中鍵入它。
如果您想以替換後綴腳本的形式概括此類解決方案,您可以執行以下操作:
#!/bin/sh from=${1:?} to=${2:?} for f in *${from} ; do mv -i "${f}" "${f%${from}}${to}" ; done
並使用兩個參數呼叫該腳本,即要替換的後綴和新後綴。