Problème de comptage boucle if
Résolu/Fermé
ellowdiiie
-
Modifié par jipicy le 10/06/2015 à 18:18
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 11 juin 2015 à 18:21
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 11 juin 2015 à 18:21
3 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 juin 2015 à 18:32
10 juin 2015 à 18:32
Salut,
Pas le temps de déchiffrer ton script ;-\
Peux-tu nous dire quel est le résultat attendu par rapport à la page donnée en lien ?
Pas le temps de déchiffrer ton script ;-\
Peux-tu nous dire quel est le résultat attendu par rapport à la page donnée en lien ?
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
10 juin 2015 à 23:16
10 juin 2015 à 23:16
Salut,
Sans rentrer dans le détail de ton script, ta façon de détecter une sous-liste est suspecte.
Suppose 3 lignes :
A chaque ligne, tu exécutes :
--> Ligne 1 : in_liste_art passe à "1". Normal, on est dans une sous liste.
--> Ligne 2 : in_liste_art passe à "". Pas normal car on est encore dans la sous liste.
Personnellement, je serai parti sur une autre stratégie en passant par un fichier intermédiaire :
- supprimer les parties du fichier html qui encadre les articles. Tu obtiens ainsi un fichier qui ne contient que le nécessaire. Ton script ne passe donc pas son temps à parser des lignes pour rien ;)
- supprimer tout ce qui se trouve entre les patterns <UL> et </UL>. Il serait du coup peut être plus simple pour ça de supprimer auparavant les retours chariot...à voir...
- enfin compter le nombre de balises <LI> restantes ^^
++
Sans rentrer dans le détail de ton script, ta façon de détecter une sous-liste est suspecte.
Suppose 3 lignes :
<UL> blabla <\UL>
A chaque ligne, tu exécutes :
in_liste_art=`echo $line | awk '/<UL>/ {print "1"}'`
--> Ligne 1 : in_liste_art passe à "1". Normal, on est dans une sous liste.
--> Ligne 2 : in_liste_art passe à "". Pas normal car on est encore dans la sous liste.
Personnellement, je serai parti sur une autre stratégie en passant par un fichier intermédiaire :
- supprimer les parties du fichier html qui encadre les articles. Tu obtiens ainsi un fichier qui ne contient que le nécessaire. Ton script ne passe donc pas son temps à parser des lignes pour rien ;)
- supprimer tout ce qui se trouve entre les patterns <UL> et </UL>. Il serait du coup peut être plus simple pour ça de supprimer auparavant les retours chariot...à voir...
- enfin compter le nombre de balises <LI> restantes ^^
++
Bonjour,
Oui, c'est une bonne idée. Le problème, c'est qu'il y a une section article, une section book, une chapters, et une software à qui je dois appliquer le traitement. Je dois donc garder les 4, et ensuite mettre des repères de début et fin de ces sections. Mais je vais supprimer le reste, et les sous-listes, ça devrait débloquer le problème. merci !
Oui, c'est une bonne idée. Le problème, c'est qu'il y a une section article, une section book, une chapters, et une software à qui je dois appliquer le traitement. Je dois donc garder les 4, et ensuite mettre des repères de début et fin de ces sections. Mais je vais supprimer le reste, et les sous-listes, ça devrait débloquer le problème. merci !
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
11 juin 2015 à 18:21
11 juin 2015 à 18:21
Re-
Tiens une approche tout autre, si j'ai bien compris ce que tu voulais faire, qui utilise le formatage web et non le code html...
Pour récupérer les données (Nom, Prénom(s) et ID) :
Pour récupérer le nombre d'articles :
Tiens une approche tout autre, si j'ai bien compris ce que tu voulais faire, qui utilise le formatage web et non le code html...
Pour récupérer les données (Nom, Prénom(s) et ID) :
$ w3m -dump -T text/html paa6.html | sed -n '/^Personal /,/^Affiliation/p' | grep -Po '(Short-ID:|Name:)[ ]*\K.*'
Rolf
Aaberge
paa6
Pour récupérer le nombre d'articles :
$ w3m -dump -T text/html paa6.html | sed -n '/^Articles/,/^NEP/p' | grep -o '^[[:digit:]][^.]*' | sed -n '$p'
34