我從一系列靜態影像創建
我認為字母排序也在 for 回圈中,所以它也應該在那里改變
============== 編輯 2 ========================
printf '%s\n' *.gif | sort -n
-1.000000.gif
0.000000.gif
-0.200000.gif
0.200000.gif
-0.400000.gif
0.400000.gif
-0.600000.gif
0.600000.gif
-0.800000.gif
0.800000.gif
a200.gif
1.000000.gif
locale
LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=
uj5u.com熱心網友回復:
這似乎是一個排序問題。您當前使用的是*.gif,它被擴展為按字母順序排序的檔案串列。但是您需要一個按數字排序的檔案串列來實作您的目標。此外,您的語言環境設定會影響排序(請參閱 參考資料man sort)。
嘗試這個:
readarray -t files < <(printf '%s\n' *.gif | LC_ALL=C sort -n)
convert "${files[@]}" -resize 600x600 a600_100.gif
或這個:
readarray -t files < <(find . -maxdepth 1 -type f -name '*.gif' -printf "%f\n" | LC_ALL=C sort -n)
convert "${files[@]}" -resize 600x600 a600_100.gif
代替:
convert *.gif -resize 600x600 a600_100.gif
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334793.html
標籤:猛击 排序 语言环境 imagemagick 转换 基名
下一篇:從網站源代碼中提取兩個值
