Bonjour,

J'essaye d'utiliser awk pour effacer une section <property>...toto...</property> dans un fichier xml

Pour l'instant j'ai trouvé la syntaxe suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
awk -v RS='<property>' '$0 !~ /toto/{print $0}'
Cela marche presque, la section qui m'intéresse est bien supprimée, mais toutes les autres sections qui ne contiennent pas "toto" se retrouvent amputées de la ligne <property> qui a servi à détecter le motif.

J'ai donc essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
awk -v RS='<property>' '$0 !~ /toto/{print RS $0}'
Cela rétablit les lignes amputées, mais sans l'indentation, et surtout la partie du fichier qui précède la première occurence se retrouve préfixée par <property>... logique.


Je ne vois donc pas comment utiliser RS sans altérer le texte d'origine en dehors de la section recherchée.