3 votes

Opérant sur des fichiers d'entrée génériques et enregistrant la sortie comme <input> + suffix

Je veux traiter en lot ma liste de fichiers d'entrée avec des caractères génériques et les sortir en ajoutant un suffixe au nom du fichier d'entrée. J'espère comprendre ce cas général.

En particulier, je lance

    convert \*.jpg -resize 800x600 ... \*-redimensionné.jpeg

Sous Fedora21 avec ImageMagick 6.6.8, il est agréable car il ajoute un suffixe numérique mais je cherche à conserver le nom de fichier original et à ajouter un suffixe. c'est-à-dire qu'il produit *-redimensionné-0.jpeg *-redimensionné-1.jpeg ...

Vérifié que cela ne semble pas applicable, Fichiers d'entrée multiples et fichiers de sortie avec awk

éditer: Est-ce possible ou dois-je écrire un script?

3voto

Scott Points 20468

Il dépend de votre définition du mot "script".  On pourrait dire que c'est un script :

pour f in *.jpg
faire
    convertir "$f" -redimensionner 800x600 ... "${f%.*}"-redimensionné.jpeg
fini

mais vous pouvez simplement le taper ainsi dans votre terminal.  La commande (ou tout nombre de commandes) entre le faire et le fini sera exécutée une fois pour chaque fichier correspondant à *.jpg, avec $f défini comme chaque nom de fichier. ${f%.*} est une forme d'extension de paramètre qui supprime l'extension du nom de fichier (correspondant à .*) de la fin (c'est-à-dire, le côté droit) du nom de fichier $f.

Donner aux fichiers de sortie l'extension .jpeg au lieu de .jpg est une bonne idée, pour éviter que le joker *.jpg ne les associe.  Une autre approche est d'écrire les fichiers de sortie dans un répertoire différent.

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