J'ai besoin de rechercher un mot clé en utilisant awk, mais je veux effectuer une recherche insensible à la casse (non sensible à la casse).
Je pense que la meilleure approche consiste à capitaliser à la fois le terme de recherche («mot clé») et la ligne cible que awk lit en même temps. À partir de cette question, comment utiliser toupper
pour imprimer en majuscules, mais je ne sais pas comment l'utiliser dans une correspondance car cette réponse montre simplement l'impression et ne laisse pas le texte en majuscule dans une variable.
Voici un exemple, compte tenu de cette entrée:
blablabla
&&&Key Word&&&
I want all
these text and numbers 123
and chars !"£$%&
as output
&&&KEY WORD&&&
blablabla
J'aimerais cette sortie:
I want all
these text and numbers 123
and chars !"£$%&
as output
C'est ce que j'ai, mais je ne sais pas comment ajouter toupper
:
awk "BEGIN {p=0}; /&&&key word&&&/ { p = ! p ; next } ; p { print }" text.txt
awk 'toupper($0)~/&&&KEY WORD&&&/ { p = ! p ; next } ; p;' text.txt
. Il n'y a pas besoin deBEGIN
bloquer et puisque l'action par défaut est d'imprimer,p;
c'est suffisant.