Terminal

Mac 終端 - 將 *.png.png 重命名為 *.png

  • June 30, 2020

我有一堆圖像,我想重命名如下:

  • *.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

並使用兩個參數呼叫該腳本,即要替換的後綴和新後綴。

引用自:https://unix.stackexchange.com/questions/194979