Sed...ou autre, une aide svp ;-)

J’ai un fichier texte contenant des urls de type …/…jpg

Je voudrais ajouter à ces urls des guillemets, de sorte que le fichier soit ansi fait : “http://…/…jpg”

Je pensais à sed mais je ne sais pas du tout comment m’y prendre, à moins qu’il ne soit pas la solution??

Merci d’avance!!

Bonjour,

Ceci devrait répondre à ta question :

Oui mais mon fichier contiens une trentaine de ligne avec le même début d’adresse url mais décliné en plusieurs fichier jpg

sitedebase.org/001.jpg
sitedebase.org/002.jpg
sitedebase.org/003.jpg
sitedebase.org/004.jpg
sitedebase.org/005.jpg

Cela peut cadrer avec ta ligne de commandes??

Bonjour,

Oui, ca cadre la syntaxe est sensiblement la même :

Le fichier sera directement modifie.

Parfait micky!!!

Bon, en fait je voulais ajouter des “” pour que wget récupère les fichiers de cette url avec l’argument -i de celui-ci.

Comme certaines fin d’urls contiennent des espaces, le fait d’ajouter des “” permets de ne pas avoir d’échecs avec wget.

En console, ça fonctionne mais quand je fais un wget -i fichiers_urls, voici ce qu’il raconte :

Tu peux ajouter le wget directement dans le fichier en modifiant
légèrement le sed :

ensuite tu exécutes le fichier :

[quote=“M3t4linux”]Oui mais mon fichier contiens une trentaine de ligne avec le même début d’adresse url mais décliné en plusieurs fichier jpg

sitedebase.org/001.jpg
sitedebase.org/002.jpg
sitedebase.org/003.jpg
sitedebase.org/004.jpg
sitedebase.org/005.jpg

Cela peut cadrer avec ta ligne de commandes??[/quote]
Ceci devrait marcher :

Et là, je trouve un intérêt direct à curl !!!

Curl peut aussi télécharger des urls à partir d’un fichier texte comme wget??

[quote=“guyr34”]Tu peux ajouter le wget directement dans le fichier en modifiant
légèrement le sed :

ensuite tu exécutes le fichier :

Merci pour cette alternative guyr, elle semble idéale!!

bonjour,

solution sans modification de ton fichier :

xargs -I{} wget "{}" < fichier

et je me demande même si les " ne sont pas obsolètes (je ne peux pas vérifier)

Alors là, avec ton xargs, tu me largues!!!

Voilà son fonctionnement :
xargs lit son entrée standard et exécute une instruction en positionnant ce qu’il a lu comme paramètre de l’instruction.
Dans notre cas, l’instruction exécutée est wget et l’entrée standard est alimentée par le contenu de fichier

L’utilisation de l’option -I (ici {}) permet de spécifier à xargs l’emplacement du paramètre dans la ligne de commande à construire pour exécuter l’instruction (on peut facilement imaginer des instructions avec plusieurs paramètres / options, il faut donc indiquer à xargs où placer la ligne lue parmi toutes les options nécessaires à ces instructions).
Cela permet également de dire à xargs d’exécuter l’instruction pour chacune des lignes lues dans son entrée standard (autrement xargs n’exécute qu’une seul fois l’instruction en mettant bout à bout toutes les lignes de son entrée standard).

J’espère avoir été claire :wink:

Oui, les explications sont compréhensibles et xargs et une commande qui réalise parfaitement ce que je veux faire.

Merci beaucoup pour vos partages/idées…

:041