AWK peut le faire avec des plages de modèles, ce qui permet d'utiliser n'importe quelle expression régulière:
echoer | awk '/pattern/,0'
imprimera echoer
la sortie en commençant par la première ligne correspondante pattern
.
AWK est basé sur un modèle et est généralement utilisé avec une approche «si ce modèle correspond, faites cela». «Ce modèle» peut être une gamme de modèles, définie comme «lorsque ce modèle correspond, commencez à le faire, jusqu'à ce que cet autre modèle corresponde»; ceci est spécifié en écrivant deux modèles séparés par une virgule, comme ci-dessus. Les modèles peuvent être des correspondances de texte, comme dans /pattern/
, où la ligne actuelle est vérifiée par rapport au modèle, interprétée comme une expression régulière; elles peuvent également être des expressions générales, évaluées pour chaque ligne et considérées comme identiques si leur résultat est non nul ou non vide.
Dans AWK, l'action par défaut consiste à imprimer la ligne actuelle.
En rassemblant tout cela, il awk '/pattern/,0'
recherche les lignes correspondantes pattern
et une fois qu'il en trouve une, il applique l'action par défaut à toutes les lignes jusqu'à ce que la 0
condition corresponde (non différente de zéro). awk '/pattern/,""'
fonctionnerait aussi.
Le manuel de Gawk est beaucoup plus détaillé.