Devo cercare una parola chiave usando awk, ma voglio eseguire una ricerca senza distinzione tra maiuscole e minuscole (senza distinzione tra maiuscole e minuscole).
Penso che l'approccio migliore sia capitalizzare sia il termine di ricerca ("parola chiave") sia la linea target che awk sta leggendo allo stesso tempo. Da questa domanda io uso toupper
come stampare in maiuscolo, ma non so come usarlo in una corrispondenza perché quella risposta mostra solo la stampa e non lascia il testo in maiuscolo in una variabile.
Ecco un esempio, dato questo input:
blablabla
&&&Key Word&&&
I want all
these text and numbers 123
and chars !"£$%&
as output
&&&KEY WORD&&&
blablabla
Vorrei questo risultato:
I want all
these text and numbers 123
and chars !"£$%&
as output
Questo è quello che ho, ma non so come aggiungere 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
. Non è necessario ilBEGIN
blocco e poiché l'azione predefinita è la stampa,p;
è sufficiente.