bash modifiers

Le
Mihamina Rakotomandimby
Bonjour,
Je n'arrive pas à activer les modifiers dans mon shell
http://snap.nlc.dcccd.edu/reference/bash1/features_40.html

Mon but est de convertir tous les *.jpg en *.png recursivement dans le
filesystem.
Cela peut se faire avec
convert /path/to/toto.jpg /path/to/toto.png

En (presque) one-liner, ça ferait

for F in `find $P -type f -name '*.jpg' -size +270k`;
do convert $F ${F:xxxxx}.png; done

Ou xxxx est le "modifier"

mihamina@pbmiha:~$ bash --version
GNU bash, version 3.2.17(1)-release (x86_64-pc-linux-gnu)

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane Chazelas
Le #774531
2007-10-08, 18:58(+02), Mihamina Rakotomandimby:
Bonjour,
Je n'arrive pas à activer les modifiers dans mon shell
http://snap.nlc.dcccd.edu/reference/bash1/features_40.html

Mon but est de convertir tous les *.jpg en *.png recursivement dans le
filesystem.
Cela peut se faire avec
convert /path/to/toto.jpg /path/to/toto.png

En (presque) one-liner, ça ferait

for F in `find $P -type f -name '*.jpg' -size +270k`;
do convert $F ${F:xxxxx}.png; done

Ou xxxx est le "modifier"

:~$ bash --version
GNU bash, version 3.2.17(1)-release (x86_64-pc-linux-gnu)
[...]


C'est une feature de csh, tcsh ou de zsh, pas de bash. bash
implemente le ${var:offset} buggué de ksh, donc ne peut pas
supporter ces modifiers dans l'expansion de variables. Il ne le
supporte que dans l'history expansion.

Avec zsh:

for f (**/*.jpg(.LK+270)) convert $f $f:r.png

ou

mogrify -format png **/*.jpg(.LK+270)

Avec bash:

find . -type f -name '*.jpg' -size +270k -exec
mogrify -format png {} +

--
Stéphane

Thierry PINELLI
Le #774524
Mihamina Rakotomandimby wrote:

Je n'arrive pas à activer les modifiers dans mon shell
http://snap.nlc.dcccd.edu/reference/bash1/features_40.html

Mon but est de convertir tous les *.jpg en *.png recursivement dans le
filesystem.
Cela peut se faire avec
convert /path/to/toto.jpg /path/to/toto.png

En (presque) one-liner, ça ferait

for F in `find $P -type f -name '*.jpg' -size +270k`;
do convert $F ${F:xxxxx}.png; done

Ou xxxx est le "modifier"



la même question a été posée pour un autre type de conversions il
y a peu de temps

on pourrait refaire le coup du makefile bien ficellé :)

a+

Publicité
Poster une réponse
Anonyme