Extraire des url d'un fichier

Résolu/Fermé
katwes07 Messages postés 2 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 19 février 2012 - 19 févr. 2012 à 03:26
katwes07 Messages postés 2 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 19 février 2012 - 19 févr. 2012 à 11:31
Bonjour,




Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=10'
sachant qu'une ligne peut en contenir plusieurs.
J'ai essayé le script suivant :
#!/bin/bash
args=$@
cat "$@" | { # so we can act as a filter

tr '<>"\47 ' '[\n*]' | sed -n -e "s/href=\'url.php?cs=//gI" -e 's/src=//gI' -e '/http:/Ip' > tmp_1

if [[ $tags == on ]]; then

    echo "<html><head><title>URLs extracted from: "${args}"</title></head><body>"
    while read line; do
       echo "<a href=\""${line}\"">"${line}"</a><br>"
    done < tmp_1
    echo "</body></html>"

else

    cat tmp_1

fi
}

ce script ne fonctionne pas bien car il ne ramène qu'une occurence par ligne alors qu'il y en a plusieurs.
et il ne tient pas compte de 'url.php?cs=

Ce que je cherche à faire est-il possible avec la commande sed et comment?
A voir également:

3 réponses

Utilisateur anonyme
19 févr. 2012 à 05:07
salut,

entre guillemets, le point d'interrogation est interprété par le shell, et non tel quel par sed.
regarde si ça fonctionne
's/href='\''url.php?cs=//gI'
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 févr. 2012 à 09:21
Salut,

Avec un exemple plus concret de tes fichiers en entrée et des url's qu'ils contiennent ce serait peut être mieux... en attendant voici un exemple basé sur ton message :

$ cat plop 
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=1'
sachant qu'une ligne peut en contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=2'
sachant qu'une ligne peut en contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=3'
sachant <a href='url.php?cs=1&ce=2&start=4' qu'une ligne peut en contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=5'
sachant qu'une ligne peut en <a href='url.php?cs=1&ce=2&start=6' contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=7'
sachant qu'une ligne peut en contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=8'
sachant qu'une ligne peut en contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=9'
sachant <a href='url.php?cs=1&ce=2&start=10' qu'une ligne peut en contenir plusieurs.
Je souhaite extraire d'un fichier, des url de type <a href='url.php?cs=1&ce=2&start=11'
sachant qu'une ligne peut en <a href='url.php?cs=1&ce=2&start=12' contenir plusieurs.

$ cat plop | egrep -o "='[^']*'" | tr -d "=*'"
url.php?cs1&ce2&start1
url.php?cs1&ce2&start2
url.php?cs1&ce2&start3
url.php?cs1&ce2&start4
url.php?cs1&ce2&start5
url.php?cs1&ce2&start6
url.php?cs1&ce2&start7
url.php?cs1&ce2&start8
url.php?cs1&ce2&start9
url.php?cs1&ce2&start10
url.php?cs1&ce2&start11
url.php?cs1&ce2&start12

$

;-))
0
katwes07 Messages postés 2 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 19 février 2012
19 févr. 2012 à 11:31
Merci beaucoup, ça marche
0