3 votes

Redimensionner plusieurs fichiers et les renommer correctement

J'ai un problème de ligne de commande - probablement assez simple, mais il semble que je ne puisse pas entrer les bons mots dans Google.

Donc, je veux redimensionner toutes les images *.png dans le dossier en utilisant imagemagick - ce serait quelque chose comme "convert -resize 80% " et je veux que "filename" "small_filename".

Alors j'ai essayé :

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

mais "syntax error near unexpected token `convert" - Je suppose que vous ne pouvez pas simplement importer les commandes imagemagick dans le bash ?

Je serais ravie si vous pouviez m'aider.

6voto

mqchen Points 3621

Vous avez manqué do après for ... chaîne. Voici un script légèrement modifié, mais votre version fonctionnera également si vous ajoutez do manquant là-dedans.

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

Un changement de nom fonctionne ici comme suit : pour chaque $f en tant que chaîne de texte, trouver son .png et le remplacer par -80%.png

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X