Redimensiona vários arquivos e os renomeia apropriadamente

3

Eu tenho um problema de linha de comando - provavelmente muito fácil, mas parece que não consigo digitar as palavras certas no google.

Então eu quero redimensionar todas as imagens * .png na pasta usando imagemagick - isso seria algo como "convert -resize 80%" e eu quero "filename" → "small_filename"

Então eu tentei:

for f in *.png ; convert -resize 80% "$f" "small_$f" ; done

mas "erro de sintaxe próximo do token inesperado" convert "- Suponho que você não pode apenas importar comandos do imagemagick para o bash?

Eu ficaria muito feliz se você pudesse ajudar.

    
por sargonnas 13.08.2014 / 02:15

1 resposta

3

Você perdeu do após for ... string. Aqui está um script ligeiramente modificado, mas sua versão também funcionará se você adicionar do ausente.

for f in *.png
do
echo "Converting $f."
convert "$f" -resize 80% "${f/.png/-80%.png}"
done

Um nome que muda aqui funciona da seguinte maneira: para cada $f como uma cadeia de texto, encontre sua .png part e altere para -80%.png

    
por Ruslan Gerasimov 13.08.2014 / 03:06