[英]Batch rename in OSX, add @2x to all files ending with .png
我想將我的圖像從.png重命名為@ 2x.png。 使用終端有一些簡單的方法嗎?
在Mark Setchell的回答的幫助下,我能夠通過以下單行解決這個問題:
for f in *.png; do NEW=${f%.png}@2x.png; mv ${f} "${NEW}"; done;
編輯:翻牌是對的,現在應該工作
讓我在貢獻中添加一些內容。 一個更通用的多格式(jpg,png,..)和名稱“擴展名免費”(模式<name> @ 2x。<extension>)一個內聯解決方案將是這樣的:
for file in *; do mv "$file" "${file%.*}@2x.${file##*.}"; done
這就像一個魅力。 希望能幫助到你
這應該這樣做:
#!/bin/bash
ls *.png | while read f
do
BASE=${f%.png} # Strip ".png" off end
NEW=${BASE}@2x.png # Add in @2
echo mv "$f" "${NEW}" # Rename
done
將其保存在名為Add2x的文件中,然后鍵入:
chmod +x Add2x
./Add2x
當你看到它將要做的事情時,刪除“echo”這個詞,這樣它實際上就可以了。
從10.10開始,macOS有一個鮮為人知的內置選項來批量重命名文件 。 不需要終端,現在就像在Finder中選擇文件一樣簡單,右鍵單擊並選擇“重命名n項......”:
指定查找: .png
和替換為: @2x.png
,然后單擊重命名。
我使用的遞歸單線程:
find -L . -type f -name "*.png" -exec bash -c 'echo "$0" "${0%.*}@2x.png"' {} \;
-L用於處理符號鏈接...類型f僅用於查找文件
如果你對命令的作用感到滿意,則用'mv'交換'echo'。
實際上,有一種更簡單的方法,使用Perl rename
工具......
rename 's/(.+)\.png/$1\@2x.png/i' *.png
這就是說...... “用相同的字符和@2x.png
替換一個或多個字符后跟.png
。以不區分大小寫的方式( i
)替換所有PNG文件。”
使用brew install rename
可以使用homebrew
輕松安裝rename
工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.