Como usar expressões compostas com AWK no Linux - Parte 5
- 4113
- 499
- Robert Wunsch DVM
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.
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:
- 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] $/
- 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.
- « VLOCK - Uma maneira inteligente de bloquear o console virtual do usuário ou terminal no Linux
- Como usar operadores de comparação com awk no Linux - Parte 4 »