sed multiline remplacer
c'est mon exemple de fichier texte :
asdas //<<<BALISE ce doit être supprimé //BALISE>>> ce devrait être là //<<<BALISE T > tsa tsa //BALISE>>>
pour laquelle je veux o/p :
asdas ce devrait être là
Fondamentalement, je m en essayant de trouver des lignes entre "//<<>>" (y compris les présentes lignes trop) et les supprimer.
J'ai essayé à l'aide de sed
sed-n
'1h;1!H;${;g;s///<<]*BALISE>>>//g;p;}'
< test.txt
Mais il n'a pas produit de bons résultats. La deuxième balise qui contient ">" symbole de l'échec dans la regex. Vous ne savez pas où je vais mal?
Aucune idée de comment le faire ?
source d'informationauteur rbawaskar
Vous devez vous connecter pour publier un commentaire.
Si vous essayez de supprimer les lignes avec le texte littéral "TAG", essayez:
De vos commentaires, il semble que la BALISE ne peut pas être littérale, dans ce cas:
Cela peut être simplifié en utilisant un autre délimiteur:
Plutôt que d'utiliser le sed solution que j'ai donné, vous pourriez, comme l'un de ces en perl, awk:
Étant donné que je pense que vous n'avez pas vraiment envie de la BALISE d'être une constante, la solution la plus propre que je connaisse est le perl variante:
En outre, la recherche des séparateurs dans
sed
peut être modifié par échapper au premier délimiteur:Awk version correspond à la fin avec le même nom de balise: