Re: bash - commande sur tous les fichiers d'un dossier

Top Page

Reply to this message
Author: Riquer Vincent (#343341)
Date:  
To: guilde
Subject: Re: bash - commande sur tous les fichiers d'un dossier
Julien Vivenot a écrit :
> Maintenant que j'ai sorti les images que je voulais d'une video, avec
> mon laps de temps entre chacune et tout et tout, je ne vois pas
> comment parcourir toutes les images d'un dossier pour les convertir
> en xpm :


for est ton ami des qu'il s'agit de traitement en lot ;)

> je voudrais faire quelque chose du style : convert -resize 400x600
> 00000001.jpg 00000001.xpm Comment fait on pour faire ceci ? (en
> gardant le meme nom comme fichier de sortie ?


ça se fait en 3 lignes de bash :

- ------------------
# for file in *.jpg ; do
#     convert -resize 400x600 "$file" "${file%%.jpg}.xpm
# done
- ------------------


Suffisamment court pour que tu puisses le taper directemtn dans le
terminal ;)

pour plus d'info voir man bash chapitre EXPANSION et GRAMMAIRE DU SHELL
du coté des commandes internes :

for nom [ in mot ]  ; do liste ; done
    La liste de mots à la suite de in est développée, créant une liste
l'éléments.  La variable nom prend successivement la valeur de chacun
des éléments, et liste est exécutée à chaque fois. Si in mot est omis,
la commande for exécute  la  liste  une  fois pour  chacun  des
paramètres  positionnels  ayant une valeur (voir le paragraphe
PARAMÈTRES plus bas).  Le code de retour est celui de la dernière
commande exécutée. Si le développement de ce qui suit in  est  une liste
 vide,  aucune commande  n'est exécutée et 0 est renvoyé.



       ${paramètre%mot}
       ${paramètre%%mot}
   est développé pour fournir un motif, comme dans l'expansion des noms
de fichiers. Si le motif correspond à une portion  finale
de  la  valeur  du paramètre, alors le développement prend la valeur du
paramètre après suppression du plus petit motif commun
(cas ``%''), ou du plus long motif (cas ``%%'').  Si le paramètre est  @
 ou  *,  l'opération  de  suppression  de  motif  est
appliquée  à  chaque paramètre positionnel successivement, et le
développement donne la liste finale.  Si le paramètre est une
variable tableau indexée par @ ou *, l'opération de suppression de motif
est appliquée à chaque membre du tableau  successive-
ment, et le développement donne la liste finale.


> Merci


You're welcome