Bonjour à tous,
J'essaie d'écrire un script qui convertit l'ensemble des images jpg d'un repertoire en diminuant la qualité.
Ma commande marche parfaitement sur un fichier.
J'ai trouvé ceci pour convertir l'ensemble des fichiers :
for i in *.jpg
do
convert $i...
done
Ca marche très bien sur des fichiers sans espace mais avec des espaces, ça plante.
Donc du coup je me suis lancé dans une autre voie mais je ne m'en sors pas.
La commande suivante me retourne bien l'ensemble des fichiers dont j'ai besoin avec les "\ " à la place des " "
ls -b *.jpg | awk '{print $0}'
Le problème c'est que j'arrive pas à récupérer ces noms et les réinsérer dans ma commande de conversion qui donne quelquechose du genre :
ls -b *.jpg | awk '{convert -quality $qualite $0 test/$0} '
L'idéal pour moi ce serait de trouver comment replacer le ls *.jpg utilisé par la boucle for i in *.jpg par un ls -b mais je sais pas si c'est possible...
Bref je suis un peu coincé là, je ne sais pas si mon problème est clair mais si quelqu'un peut m'aider à l'éclaircir ou a la solution... merci d'avance :)
Rb
# Guillemets
Posté par nakan (site web personnel) . Évalué à 6.
for i in *.jpg
do
convert "$i"...
done
Les guillemets devraient permettre les espaces.
# re
Posté par LaBienPensanceMaTuer . Évalué à 4.
[binarym@gco]:/tmp/test% echo "blabla" > test\ 1
[binarym@gco]:/tmp/test% for i in *; do
for> cat "$i"
for> done
blabla
[binarym@gco]:/tmp/test% ls
test 1
# [HS] find/xargs
Posté par lom (site web personnel) . Évalué à 2.
find . -name "*.jpg" -print0 | xargs -0 grep
# IFS
Posté par Frederic Brugmans . Évalué à 2.
for i in $( ls *jpg )
do
convert $i ...
done
[^] # Re: IFS
Posté par capoeira . Évalué à 1.
Seule question, c'est quoi le IFS ? je vais voir dans le man bash a tout hasard quand même ... :)
[^] # Re: IFS
Posté par capoeira . Évalué à 1.
Ta solution marche nickelle et je sais ce que c'est qu'IFS désormais :)
Grand Merci pour ta réponse.
Rb
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.