Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/01/2018, à 21:30

ludooo_fra

Script parsage csv wget et rename

Bonjour,

j'ai un script à réaliser et ce n'est pas trop mon truc !
Dans un fichier CSV, il faudrait récupérer une premiere colonne et une url.
Puis télécharger l'url et renommer le fichier par le texte de la première colonne.

Pouvez-vous m'aider ?

J'arrive à extraire les url et les mettre dans un fichier pour faire un wget -i mais absolument pas à les renommer en suivant le pattern de ma première colonne.

Pourriez-vous m'assister ?
merci

Hors ligne

#2 Le 24/01/2018, à 21:38

Watael

Re : Script parsage csv wget et rename

salut,

mais comment récupères-tu l'URL ?

il faudrait qu'on ait un échantillon du fichier à traiter.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#3 Le 24/01/2018, à 21:40

ludooo_fra

Re : Script parsage csv wget et rename

Pour récupérer l'url j'ai écris cela,

cat exemple.csv | awk -F"," '{print $2}' >> url1

et ça fonctionne.

Un exemple du fichier csv

un,https://www.xxx.pdf
deux,https://www.xxxxx.pdf

Hors ligne

#4 Le 24/01/2018, à 21:56

Watael

Re : Script parsage csv wget et rename

c'est bête, tu n'es pas très loin :

awk -F ',' '{print $2 >1}' exemple.csv

Dernière modification par Watael (Le 24/01/2018, à 21:58)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 24/01/2018, à 22:05

DonutMan75

Re : Script parsage csv wget et rename

Hello,
je propose ça :

#! /bin/sh

fin="./liste.dat"

while read l ; do
	fout=$(echo "$l" | awk -F"," '{print $1}')
	url=$(echo "$l" | awk -F"," '{print $2}')
	wget "$url" -O "$fout"
done < "$fin"

avec par exemple (deux articles pdf au pif trouvés sur le net):

$ cat liste.dat 
un,http://pedagogie.ac-toulouse.fr/rer-cordes/FILES/flash/archive/Ecoleetcinema/Edward/bio.pdf
deux,http://www.jane-eakin.com/articles/85_dp_festival_du_cinema_italien.pdf

Une exécution créé bien les fichiers un et deux comme convenu...

$ ls -1
liste.dat
run.sh
$ ./run.sh
$ ls -1
deux
liste.dat
run.sh
un

Donut

Hors ligne

#6 Le 24/01/2018, à 22:08

ludooo_fra

Re : Script parsage csv wget et rename

Salut DonutMan75, je regarde ça. Merci

Hors ligne

#7 Le 24/01/2018, à 22:17

Watael

Re : Script parsage csv wget et rename

non, c'est affreux.
mais je vois que j'ai omis le téléchargement dans mon code, mais c'est faisable en 100% awk.

bon, en shell propre :

while IFS=',' read -r un deux
do
   wget -qO"$un" "$deux"
done < fichier.csv

Dernière modification par Watael (Le 24/01/2018, à 22:18)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#8 Le 24/01/2018, à 22:22

ludooo_fra

Re : Script parsage csv wget et rename

MERCI Donut, merci Watael aussi
ça fonctionne très bien, t'es un boss smile

j'ajouterais pour ceux qui tomberais sur ce post que pour ajouter l'extension aux fichiers téléchargés que la fonction rename fonctionne bien

rename 's/(.*)/$1.pdf/' *

Dernière modification par ludooo_fra (Le 24/01/2018, à 23:01)

Hors ligne