Como usar expressões compostas com AWK no Linux - Parte 5

Como usar expressões compostas com AWK no Linux - Parte 5

O tempo todo, estamos olhando para expressões simples ao verificar se uma condição foi atendida ou não. E se você quiser usar mais do que uma expressão para verificar se uma condição específica em?

Neste artigo, examinaremos o modo como você pode combinar múltiplas expressões referidas como expressões compostas para verificar se há uma condição ao filtrar texto ou strings.

Em Awk, expressões compostas são construídos usando o && referido como (e) e a || referido como (ou) operadores compostos.

A sintaxe geral para expressões compostas é:

(First_Expression) && (Second_Expression) 

Aqui, First_expression e Second_expression deve ser fiel a tornar toda a expressão verdadeira.

(First_Expression) || (Second_expression) 

Aqui, uma das expressões também First_expression ou Second_expression deve ser verdadeiro para que toda a expressão seja verdadeira.

Cuidado: Lembre -se de sempre incluir os parênteses.

As expressões podem ser construídas usando os operadores de comparação que analisamos na Parte 4 da série AWK.

Vamos agora ter um entendimento claro usando um exemplo abaixo:

Neste exemplo, um arquivo de texto chamado Tecmint_deals.TXT, que contém uma lista de algumas ofertas aleatórias incríveis de Tecmint, inclui o nome do negócio, o preço e o tipo.

Lista de ofertas Tecmint
NO NOME PREÇO TIPO 1 MAC_OS_X_CLEANUP_SUITE $ 9.99 Software 2 Basics_notebook $ 14.99 estilo de vida 3 tactical_pen $ 25.99 estilo de vida 4 scapple $ 19.00 desconhecido 5 nano_tool_pack $ 11.99 Desconhecido 6 Ditto_bluetooth_altering_device $ 33.00 Tech 7 nano_prowler_mini_drone $ 36.99 Tech 

Diga que queremos apenas ofertas de impressão e bandeira que estão acima $ 20 e do tipo “Tecnologia” usando o (**) assinar no final de cada linha.

Precisamos executar o comando abaixo.

# awk '($ 3 ~ /^$ [2-9] [0-9]*\.[0-9] [0-9] $/) && ($ 4 == "Tech") printf "%s \ t%s \ n", $ 0, "*";  'tecmint_deals.TXT  6 Ditto_bluetooth_altering_device $ 33.00 Tecnologia * 7 nano_prowler_mini_drone $ 36.99 Tecnologia * 

Neste exemplo, usamos duas expressões em uma expressão composta:

  1. Primeira expressão, ($ 3 ~ /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/) ; verifica as linhas para acordos com o preço acima $ 20, E é verdade apenas se o valor de $ 3 qual é o preço corresponde ao padrão /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/
  2. E a segunda expressão, ($ 4 == “Tech”) ; verifica se o negócio é do tipo “Tecnologia” E é verdade apenas se o valor de $ 4 igual a “Tecnologia”.

Lembre -se, uma linha só será sinalizada com o (**), se Primeira expressão e segunda expressão são verdadeiros como estados o princípio do && operador.

Resumo

Algumas condições sempre exigem a construção de expressões compostas para você combinar exatamente o que você deseja. Quando você entende o uso de operadores de comparação e expressão composta, filtrar o texto ou seqüências baseadas em algumas condições difíceis se tornará fácil.

Espero que você ache este guia útil e para quaisquer perguntas ou adições, lembre -se sempre de deixar um comentário e sua preocupação será resolvida de acordo.