Noms de fichiers de sortie pour curl et ImageMagic

Nathalex

Membre expert
Club iGen
8 Juin 2001
2 385
254
50
Dans l'Ain, pas trop loin de Lyon
Salut tout le monde,

J'ai deux problèmes qui sont en fait assez proches.

Je souhaite récupérer une série d'images sur un site web mais elles sont dans des répertoires différents et portent un nom de fichier identique. Si je fais curl -0 http://www.lesite.com/[01-30]/image.jpg, je les télécharge bien toutes mais elles s'écrasent au fur et à mesure sur le même fichier.
Comment faire en sorte que le nom enregistré sur mon disque soit de la forme xximage.jpg avec xx le nom du répertoire ?

Dans le même ordre d'idées, je souhaite ensuite faire un crop de cette série d'images. J'ai ImageMagick d'installé, je fais donc un truc du style : convert *.jpg[640x480+550+100] toto%04d.jpg et j'ai alors une série de totoxx.jpg. Mais ce que j'aimerais, c'est que le nom de la nouvelle image soit de la forme xximage_rec.jpg. C'est possible ?

Toute assistance au neuneu de la ligne de commande que je suis sera super bienvenue !

Merci

Edit : j'ai trouvé pour curl. C'est -o "#1#2" que je n'avais jamais réussi à utiliser. Reste donc la question d'ImageMagic ;)
 
Salut tout le monde,

J'ai deux problèmes qui sont en fait assez proches.

Je souhaite récupérer une série d'images sur un site web mais elles sont dans des répertoires différents et portent un nom de fichier identique. Si je fais curl -0 http://www.lesite.com/[01-30]/image.jpg, je les télécharge bien toutes mais elles s'écrasent au fur et à mesure sur le même fichier.
Comment faire en sorte que le nom enregistré sur mon disque soit de la forme xximage.jpg avec xx le nom du répertoire ?

Dans le même ordre d'idées, je souhaite ensuite faire un crop de cette série d'images. J'ai ImageMagick d'installé, je fais donc un truc du style : convert *.jpg[640x480+550+100] toto%04d.jpg et j'ai alors une série de totoxx.jpg. Mais ce que j'aimerais, c'est que le nom de la nouvelle image soit de la forme xximage_rec.jpg. C'est possible ?

Toute assistance au neuneu de la ligne de commande que je suis sera super bienvenue !

Merci

Edit : j'ai trouvé pour curl. C'est -o "#1#2" que je n'avais jamais réussi à utiliser. Reste donc la question d'ImageMagic ;)
:nailbiting: Ben je suppose qu'il suffit de remplacer toto%04d.jpg par %04dimage_rec.jpg non ?
 
:nailbiting: Ben je suppose qu'il suffit de remplacer toto%04d.jpg par %04dimage_rec.jpg non ?

Je me suis sans doute mal exprimé : je souhaiterais ajouter un suffixe (_rec dans mon exemple) au nom des photos que je modifie.
Genre, je pars d'une série 112207image.jpg, 112208image.jpg, 112209image.jpg par la même chose mais _rec en plus
 
Je me suis sans doute mal exprimé : je souhaiterais ajouter un suffixe (_rec dans mon exemple) au nom des photos que je modifie.
Genre, je pars d'une série 112207image.jpg, 112208image.jpg, 112209image.jpg par la même chose mais _rec en plus
ah ok ^^.


Je viens de regarder les man de convert et ImageMagick et il ne parle pas de ce genre de truc (ou ça m'a échappé).

Mais tu peux toujours le faire en bash, même si c'est moins pratique...

Bloc de code:
for img in *.jpg; do convert $img[640x480+550+100] ${img%.jpg}_rec.jpg; done
ça devrait le faire :)

(si tu veux des expliquation dis le ;))
 
Bloc de code:
for img in *.jpg; do convert $img[640x480+550+100] ${img%.jpg}_rec.jpg; done
ça devrait le faire :)

(si tu veux des expliquation dis le ;))

Trop fort !! :up:
Je vais avoir appris des trucs ce soir ! Juste pour être sûr, c'est quoi l'histoire du %.jpg ? Ça retire le .jpg du nom contenu dans img ? C'est ça ?
 
Trop fort !! :up:
Je vais avoir appris des trucs ce soir ! Juste pour être sûr, c'est quoi l'histoire du %.jpg ? Ça retire le .jpg du nom contenu dans img ? C'est ça ?
ouaipe :)

si t'as une variable var :
  • ${var%motif} = $var mais avec le motif en moins à la fin. avec truc*.txt : "fichiertruc-truc.txt" devient "fichiertruc-".
  • ${var%%motif} = $var mais avec le motif gourmant en moins à la fin. avec truc*.txt : "fichiertruc-truc.txt" devient "fichier".
  • ${var#motif} = pareil qu'avec % mais au début. avec fi*tr : "fichiertruc-truc.txt" devient "uc-truc.txt".
  • ${var##motif} = pareil qu'avec %% mais au début. avec fi*tr : "fichiertruc-truc.txt" devient "uc.txt".
  • ${var:n} = $var à partir du n-ième charactère (en commençant à 0). avec n = 12, "fichiertruc-truc.txt" devient "truc.txt".
  • ${var:n:m} = $var à entre le n-ième charactère et le n+m-ième (non-inclus) (toujours en commençant à 0). avec n = 12 et m = 4, "fichiertruc-truc.txt" devient "truc".

motif, n et m peuvent être des variables expansées (avec le $ devant) par exemple :
Bloc de code:
[romuald:~] - 01:40:16
p4bl0$ [COLOR="DarkSlateBlue"]var=macgeneration[/COLOR]
[romuald:~] - 01:40:21
p4bl0$ [COLOR="DarkSlateBlue"]echo $var[/COLOR]
[COLOR="Navy"]macgeneration[/COLOR]
[romuald:~] - 01:40:25
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var%n*}[/COLOR]
[COLOR="Navy"]macgeneratio[/COLOR]
[romuald:~] - 01:40:38
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var%%n*}[/COLOR]
[COLOR="Navy"]macge[/COLOR]
[romuald:~] - 01:40:41
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var#*a}[/COLOR]
[COLOR="Navy"]cgeneration[/COLOR]
[romuald:~] - 01:40:56
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var##*a}[/COLOR]
[COLOR="Navy"]tion[/COLOR]
[romuald:~] - 01:41:44
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var:7}[/COLOR]
[COLOR="Navy"]ration[/COLOR]
[romuald:~] - 01:41:48
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var:7:3}[/COLOR]
[COLOR="Navy"]rat[/COLOR]
[romuald:~] - 01:42:29
p4bl0$ [COLOR="DarkSlateBlue"]m=mac[/COLOR]
[romuald:~] - 01:42:41
p4bl0$ [COLOR="DarkSlateBlue"]echo ${var#$m}[/COLOR]
[COLOR="Navy"]generation[/COLOR]

ouais ouais mon laptop s'appel Romuald :D (comme le bélier noir qui est le « hum » chef du troupeau du Génie des Alpages :love: !).
 
  • J’aime
Réactions: Nathalex