[英]How can i reduce rename time?
所以,我有 ~ 6k 個文件,我需要檢查什么,如果需要,重命名。 原因是,我的一些圖像名稱有我不需要的重音字符,需要重命名為簡單字符。 例如。:
Bas-vs-Broek-DTR-025-Dobszék-állítható-magasságú.jpg
到
Bas-vs-Broek-DTR-025-Dobszek-allithato-magassagu.jpg
我現在正在通過查找和重命名來完成這項工作:
find . -type f -exec rename 's/ ö|ő|ó|ö/o/g' '{}' \; -exec rename 's/ ü|ű|ú/u/g' '{}' \; -exec rename 's/ á/a/g' '{}' \; -exec rename 's/ é/e/g' '{}' \; -exec rename 's/ í/i/g' '{}' \;
現在的問題是需要超過 30-35 分鍾。 我能以某種方式減少這個過程時間嗎? 我需要遞歸檢查所有子文件夾。
您的目標應該是減少rename
的調用次數,因為 fork+execve 是相對昂貴的操作。
您可以通過將所有模式連接到一個rename
命令中來完成此操作,然后讓find
使用+
而不是\;
:
find . -type f -exec \
rename 's/ö|ő|ó|ö/o/g; s/ü|ű|ú/u/g; s/á/a/g; s/é/e/g; s/í/i/g' '{}' +
我想我找到了完美的解決方案。 發現有正則表達式選項(我不知道),現在快得多,Egg:我如何使用:
find . -regex '.*[á].*' -type f -exec rename 's/á/a/g' '{}' \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.