воскресенье дек 02, 2007
воскресенье дек 02, 2007
Чтоб совсем мозги не засыхали, надо иногда их разминать. Особенно будучи директором по маркетингу.
Приехала жена из поездки в Китай, привезла тысяч пять фоток. Лежат на диске в виде 100NCD80 или 103NCD80 и т.д. Надо как-то упорядочить.
Сначала на них на всех напустил программу renrot (переименовывает и поворачивает фотки):
$ for d in Roll* ; do echo "$d" ; cd "$d"; renrot -n %Y-%m-%d_%H-%M-%S-%c *JPG; cd ..; done
Теперь надо разложить их все по директориям по дням. Сначала создал директории (с 1 по 9 ноября):
i=1 ; for ((i; i<=9; i++)) ; do mkdir "2007-11-0$i"; done
А потом надо скопировать из каждой 100NCD80 и им подобных:
$ cd ../101NCD80-1
$ i=0 ; for ((i; i<=9; i++)) ; do mv "2007-11-0$i"* ../"2007-11-0$i" ; echo "Next day" ; done
После таких трудов надо было все-таки посчитать, сколько таки фоток получилось в директориях, не потерялись ли где нибудь.
$ for d in 2007* ; do ls $d | wc ; done | awk '{print $1}' | xargs ~/sum.sh
Может, я что-то пропустил, но, по-моему, нет стандартной программы, которая бы просто выдавала сумму аргументов. Пришлось написать sum.sh:
#!/bin/bash
sum=0
for i in $*; do echo $i ; sum=$((sum))+$((i)) ; done
echo $((sum))
Я все правильно сделал?
гораздо проще посчитать кол-во файлов
$ find 2007* -type f | wc -l
isn't it?
опубликовал pomah Декабрь 02, 2007 at 05:21 PM MSK #
И то верно! И быстрее работает.
Как-то я забываю использовать find кроме как по прямому назначению.
Я ж все таки в маркетинге, мне простительно :-)
опубликовал panni Декабрь 02, 2007 at 06:42 PM MSK #