以下腳本刪除破折號字符發現在當前目錄(遞歸)中的所有文件,並替換破折號 - 字符轉換爲下劃線字符文件名腳本重命名文件 - 從Android的資源文件
find . -type f -name '*.png' | while read FILE ; do
newfile="$(echo ${FILE} |sed -e 's/-/_/g')";
mv "${FILE}" "${newfile}" ;
done
給出一個文件包含破折號的路徑(例如,drawable-hdpi/file-name.png
),腳本會嘗試將其重命名爲drawable_hdpi/file_name.png
- 替換目錄名稱中的破折號以及文件名中的破折號。
我想避免修改目錄路徑,只重寫文件名。
有關如何修改sed
用法以跳過目錄路徑的任何建議?
使用小寫變量名稱以避免與環境變量的潛在衝突是一個很好的做法......請參閱https://unix.stackexchange.com/questions/321697/why-is-looping-over-finds-輸出不良練習 – Sundeep
取決於你的'find'版本和基於'rename'命令的可用性,你可以'find。 -type'fname'* .png'-exec rename -n's | [^ /] + $ | $&=〜s/-/_/gr | e'{} +'並且移除幹運行' - n'選項,一旦你看到該命令按預期工作 – Sundeep
@Sundeep在osx上運行,它沒有重命名,所以我依賴於mv – aviran