Массовый mv для файлов и изменение имен файлов [дубликат]

Использует утилиту fileinfo для получения ширины и высоты изображения. Если высота больше ширины, файл перемещается в каталог portraits / . В противном случае он перемещается в каталог landscape / .

for f in ./*jpg
do
    if fileinfo "$f" 2>&1 | awk '/w =/{w=$3+0; h=$6+0; if (h>w) exit; else exit 1}'
    then
        mv "$f" portraits/
    else
        mv "$f" landscape/
    fi
done

Имя файла в этом цикле при необходимости заключено в двойные кавычки, чтобы этот цикл можно было безопасно использовать даже для имен файлов изображений с пробелами, новой строкой или другими сложными символами.

В системе, подобной debian, fileinfo можно установить через:

apt-get install leptonica-progs

Можно использовать другие подобные утилиты, если команда awk изменена соответствующим образом.

-1
03.04.2014, 19:01
0 ответов

Теги

Похожие вопросы