Awk - mantenha a palavra “example” e “EXAMPLE” com uma entrada

2

Estou tentando manter apenas os clientes que contêm determinadas palavras. Aqui está um exemplo

< newname.txt awk 'BEGIN {FS=","} $7~/USA|United States/' > usa.txt

O problema que estou tendo é se eles tivessem usa , UNITED STATES ou UnItEd StAtEs , então eles não exportariam por serem capitais. Como posso executar este comando sem escrever a mesma palavra várias vezes com maiúsculas / minúsculas.

    
por Teddy291 19.06.2015 / 00:12

2 respostas

3

Você pode tentar trapacear usando tolower ou toupper :

awk 'BEGIN {FS=","} tolower($7)~/usa|united states/'

ou

awk 'BEGIN {FS=","} toupper($7)~/USA|UNITED STATES/'
    
por 19.06.2015 / 00:21
1

Você pode usar o sinalizador IGNORECASE (! = 0) para ignorar o caso em todas as expressões regulares. Pelo menos isso é gawk.

Conforme solicitado: um exemplo

echo "eXaMpLe"|awk '{IGNORECASE=1}
/example/ { print $0; }
'
eXaMpLe
    
por 19.06.2015 / 00:22