Tableau et filtrage d'une liste d'url
Bonsoir,
Pourriez-vous m'aider à résoudre le pb suivant ?
J'ai un fichier ini contenant une liste d'urls. Au démarrage du script, Je balaie le fichier et créé
un tableau contenant toutes les url. Pour afficher ou consulter les urls à jour, il suffit de parcourir le tableau.
Pour désactiver provisoirement une url, j'ajoute ";". Il faut donc ne traiter que les lignes commençant par "http".
Deux solutions :
(a) filtrer lors de la lecture du fichier ini.
(b) importer toutesles lignes puis filtrer lors du parcours du tableau.
(a)
voici comment j'importe toutes les lignes
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| i=1
#=============================================
# Analyse le nombre de lignes du fichier ini
#=============================================
b=`cat "/EPG/$file" | wc -l`
nbligne=$(($b+1))
echo ______________________________
echo "fichier.ini contient $nbligne lignes."
echo
#=============================================
# Balayage du fichier ini ligne par ligne
# et construction du tableau
#=============================================
while test $i -le $nbligne
do
urld[i]=`cat "/EPG/$file" | head -n $i `
echo $i
echo ${urld[i]}
i=`expr $i + 1`
done
exit |
Si je remplace :
Code:
urld[i]=`cat "/EPG/$file" | head -n $i `
par :
Code:
urld[i]=`cat "/EPG/$file" | head -n $i | grep ^http `
Le filtre sed ne marche pas correctement. Retour de x fois l'url filtrée au lieu d'une :
Code:
1 2 3 4
| http://www.monsilte1/index.php
http://www.monsilte/index.php
http://www.monsilte/index.php
http://www.monsilte/index.php |
(b)
Je n'arrive pas à trouver la syntaxe permettant d'interroger l'une des "cases" du tableau (commande grep ?).
Code:
if ${urld[i]} grep ^http ...
Pourriez-vous m'aider à faire aboutir l'une ou l'autre des solutions ?
D'avance merci .
PS : des contraintes m'obligent à passer par un script bash, sinon j'aurai utilisé Perl ;)