Portál AbcLinuxu, 24. dubna 2024 18:48
i=1; for x in *.jpg; do mv $x blah_`printf %03d $i`.jpg; i=$((i + 1)); done
for f in DSC_*.jpg; do mv -vi "$f" "0001-${f#DSC_}"; done
for f in DSC_*.jpg; do mv -vi "$f" "${f/DSC_/0001-}"; done
#!/bin/bash #$1..prefix (0001) #$2..suffix (.jpg) I=0 ls | sort | while read name; do I=I+1 mv "${name%$2}$2" ${1}-`printf "%03d" $I`$2 done
. . ls *$2 |sort|... . .
. . I=$((I+1)) . .
mv "${name%$2}$2"
je jako co? Procesor nemá co na práci a tak mu nějakou dáme?
"${name%$2}$2"
je opravdu kandidát nejzbytečnější použití operátoru % v shellu... "$name"
je totéž.
rename 'no strict "vars"; $_="prefix-${\(sprintf q.%03d., ++$i)}.jpg"' *.jpgJen jestli máš to správné rename
i=1; for x in *.jpg; do mv "$x" prefix-$(printf %03d $i).jpg; let i++; doneKromě toho, že je to pomalejší.
ls *.jpg | wc -l
je viac ako 999, a toho, ze v zozname je aj subor "prefix-DDD.jpg", to uplne v poriadku . Ale na to uplne postaci mv -i
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.