Como usar operadores de comparação com awk no Linux - Parte 4
- 2490
- 499
- Randal Kuhlman
Ao lidar com valores numéricos ou de sequência em uma linha de texto, filtrar o texto ou seqüências usando operadoras de comparação é útil para Awk usuários de comando.
Nesta parte da série AWK, vamos dar uma olhada em como você pode filtrar texto ou strings usando operadores de comparação. Se você é um programador, já deve estar familiarizado com os operadores de comparação, mas aqueles que não são, deixe -me explicar na seção abaixo.
O que são operadores de comparação em Awk?
Os operadores de comparação no AWK são usados para comparar o valor de números ou strings e incluem o seguinte:
>
- Maior que<
- menor que> =
- Melhor que ou igual a<=
- menos que ou igual a==
- igual a!=
- não igual aalgum_value ~ / padrão /
- Verdadeiro se algum padrão corresponde ao padrãoAlgum_value !~ / padrão /
- Verdadeiro se alguém não corresponde ao padrão
Agora que analisamos os vários operadores de comparação em Awk, vamos entendê -los melhor usando um exemplo.
Neste exemplo, temos um arquivo chamado Food_list.TXT que é uma lista de compras para diferentes itens alimentares e eu gostaria de sinalizar itens alimentares cuja quantidade é menor ou igual a 20, adicionando (**)
No final de cada linha.
Nenhum item_name Quantidade Preço 1 mangas 45 $ 3.45 2 maçãs 25 $ 2.45 3 abacaxi 5 $ 4.45 4 tomates 25 $ 3.45 5 cebola 15 $ 1.45 6 bananas 30 $ 3.45
A sintaxe geral para o uso de operadores de comparação no AWK é:
# expressão ações;
Para atingir o objetivo acima, terei que executar o comando abaixo:
# awk '$ 3 30 print $ 0;' Food_list.TXT Sem item_name 'Preço de quantidade 1 mangas 45 $ 3.45 2 maçãs 25 $ 2.45 ** 3 abacaxi 5 $ 4.45 ** 4 tomates 25 $ 3.45 ** 5 cebolas 15 $ 1.45 ** 6 bananas 30 $ 3.45 **
No exemplo acima, há duas coisas importantes que acontecem:
- A primeira expressão Ação ; combinação, $ 3 <= 30 printf “%s \ t%s \ n”, $ 0 ”**”; imprime as linhas com quantidade menor ou igual a 30 e adiciona um (**) No final de cada linha. O valor da quantidade é acessado usando $ 3 variável de campo.
- A segunda expressão Ação ; combinação, $ 3> 30 print $ 0; imprime as linhas inalteradas, pois sua quantidade é maior então 30.
Mais um exemplo:
# awk '$ 3 20 print $ 0;' Food_list.TXT Nenhum item_name Quantidade Preço 1 mangas 45 $ 3.45 2 maçãs 25 $ 2.45 3 abacaxi 5 $ 4.45 verdadeiro 4 tomates 25 $ 3.45 5 cebola 15 $ 1.45 verdadeiro 6 bananas 30 $ 3.45
Neste exemplo, queremos indicar linhas com quantidade menor ou igual a 20 com a palavra (VERDADEIRO) no final.
Resumo
Este é um tutorial introdutório para os operadores de comparação em Awk, Portanto, você precisa experimentar muitas outras opções e descobrir mais.
Em caso de problemas que você enfrentar ou qualquer adição que tenha em mente, depois solte um comentário na seção de comentários abaixo. Lembre -se de ler a próxima parte da série Awk, onde vou levá -lo através de expressões compostas.
- « Como usar expressões compostas com AWK no Linux - Parte 5
- Explicação de “Tudo é um arquivo” e tipos de arquivos no Linux »