Preciso procurar uma palavra-chave usando o awk, mas quero executar uma pesquisa que não diferencia maiúsculas de minúsculas (sem distinção entre maiúsculas e minúsculas).
Eu acho que a melhor abordagem é capitalizar o termo de pesquisa ("palavra-chave") e a linha de destino que o awk está lendo ao mesmo tempo. A partir desta pergunta, eu como usar toupper
para imprimir em maiúsculas, mas não sei como usá-lo em uma correspondência, porque essa resposta mostra apenas a impressão e não deixa o texto em maiúsculas em uma variável.
Aqui está um exemplo, dada esta entrada:
blablabla
&&&Key Word&&&
I want all
these text and numbers 123
and chars !"£$%&
as output
&&&KEY WORD&&&
blablabla
Eu gostaria desta saída:
I want all
these text and numbers 123
and chars !"£$%&
as output
É isso que tenho, mas não sei como adicionar 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
. Não há necessidade doBEGIN
bloco e, como a ação padrão é imprimir,p;
é suficiente.