Bash: множественное сопоставление с образцом - PullRequest
4 голосов
/ 01 мая 2011

Я использую этот скрипт для преобразования всех .png файлов в каталоге в .jpg файлы. Если я хочу преобразовать не только файлы PNG, но также файлы TIF, GIF и BMP в JPG, как этот сценарий можно изменить?

  #!/bin/bash
    for f in *.png ; do
        convert "$f" -resize 50% "${f%.*}.jpg"
    done

Ответы [ 2 ]

10 голосов
/ 01 мая 2011

Просто добавьте расширения, которые вы хотите обработать;например:

for f in *.png *.tif *.gif; do

или просто:

for f in *.{png,tif,gif}; do

другой подход может быть следующим: найти каждый файл изображения в каталоге или дереве папок и преобразовать их в jpg, кромеесли изображение уже является файлом jpg ;например (не проверено):

find . -exec bash -c 'file "$1" | grep "image data" | grep -iv JPEG && convert "$1" -resize 50% "${1%.*}.jpg"' {} {} \; 
1 голос
/ 01 мая 2011

for f in *.{png,tif,gif,bmp}; do

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...