Bonjour,

Je ne comprends pas bien comment Perl gère les fins de ligne dans un bloc de texte (options /s et /m).

J'ai besoin de parser un fichier XML, en simplifiant cette ligne, où je remplace pour le moment les LF par un # pour contourner le problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#extraire lignes et virer TABs
grep -Poha "^\t{2}<(title|link|pub)>.+</(title|link|pub)>$" feed.xml | sed -r "s@\t@@g" > input.xml
 
cat input.xml | tr '\n' '#' | perl -pe 's@<title>(.+?)</title>#<link>(.+?)</link>#<pub>(.+?)</pub>#@<li><a href="$2">$1 - $3</a></li>\n@g' > feed.html
Peut-on simplifier tout ça en utilisant juste une ligne de Perl ?

Merci.