Comment puis-je sélectionner la première occurrence entre deux modèles les incluant. Utiliser de préférence sed
ou awk
.
J'ai :
text
something P1 something
content1
content2
something P2 something
text
something P1 something
content3
content4
something P2 something
text
Je veux la première occurrence des lignes entre P1 et P2 (y compris la ligne P1 et la ligne P2) :
something P1 something
content1
content2
something P2 something
Réponse acceptée :
sed '/P1/,/P2/!d;/P2/q'
… ferait le travail de manière portable par d
suppression de toutes les lignes qui font !
n'entre pas dans la plage, alors q
uitting la première fois qu'il rencontre la fin de la plage. Il n'échoue pas pour P2 précédant P1, et il ne nécessite pas de syntaxe spécifique GNU pour écrire simplement.