Extraire des url d'un fichier

Résolu
katwes07 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
katwes07 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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   Statut Contributeur Dernière intervention   6 430
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup, ça marche
0