Bonjour,

J'ai le code bash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
grep 'name="subaffil"' $fic |sed -e 's|^.*class="collapsed">||' |sed ':z;N;$!b z;s/\n/;/g' | sed -e 's|</a></h4></div></div>.*$||' -e 's|<BR>|, |g'
qui vise à récupérer l'affiliation sur des pages web d'auteurs d'at ideas, telles que :
https://ideas.repec.org/e/pca127.html

Exécutée à grande échelle (44000 pages), la majorité des affiliations est bien repérée et enregistrée.

QUESTION 1 :
Cependant, je me suis aperçue que cela fonctionne bien lorsque j'ai une page où tout est sur la même ligne, comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
blabla <............name="subaffil">blablabla.....class="collapsed"> affiliation,univ,pays</a></h4></div></div>....blabla
Mais lorsque j'ai sur plusieurs lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
blabla <............name="subaffil">blablabla....class="collapsed"> affiliation
univ
pays</a></h4></div></div>....blabla
il semble alors qu'il s'arrête à la fin de la première ligne et supprime tout le reste.. parce que le résultat est : affiliation
mais pas univ, ni pays.

J'ai cherché comment modifier le code, mais je ne sais pas comment arranger ça. Je pense qu'il faudrait mettre une suppression des retours chariots avant de commencer à découper entre class="collapsed"> et </a></h4></div></div>, mais alors il ne pourra plus utiliser le repérage d'une ligne pour savoir quand découper, si ?

QUESTION 2 :
De plus, lorsque j'ai 1 ou 2 affiliations, ça fonctionne bien, mais lorsque j'ai 3 ou 4, ca ne fonctionne plus correctement : c'est limité aux 2 premières affiliations. Quelle est l'astuce pour aussi prendre en compte les 3, 4 voire 5eme affiliations ???


Merci de votre aide,
cordialement