Comment supprimer uniquement le premier groupe d’un motif?

J’ai essayé un certain nombre de façons d’aborder cette question, mais je suis à court d’idées. J’espère que quelqu’un peut indiquer ce que je fais mal.

Voici ma consortingbution:

 Keep Keep Remove Keep Keep  

Comme vous pouvez le comprendre, j’essaie juste de supprimer la ligne 4:

  Keep Keep Keep Keep  

Voici ce que j’ai à ce jour, mais ça ne marche pas comme prévu:

 sed -e '3,${g;s/.*//p}' t1 

J’ai essayé d’append une partie de la logique de groupe que je trouvais mais cela ne fonctionne pas car il semble que sed n’a aucun moyen direct de la rendre gourmande.

Des idées?

J’espère que quelqu’un peut indiquer ce que je fais mal

La bonne méthode consiste à utiliser des parsingurs XML / HTML tels que xmlstarlet ou xmllint :

 xmlstarlet ed -O -d "//Root/*[3]" input.xml 
  • ed – mode édition
  • -O – omettre la déclaration XML ()
  • -d – supprime l’action
  • "//Root/*[3]" – expression xpath sélectionnant le 3ème nœud enfant du nœud parent Root

Le résultat:

  Keep Keep Keep Keep