Como usar operadores de comparação com awk no Linux - Parte 4

Como usar operadores de comparação com awk no Linux - Parte 4

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:

  1. > - Maior que
  2. < - menor que
  3. > = - Melhor que ou igual a
  4. <= - menos que ou igual a
  5. == - igual a
  6. != - não igual a
  7. algum_value ~ / padrão / - Verdadeiro se algum padrão corresponde ao padrão
  8. Algum_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.

Arquivo - 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 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:

  1. 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.
  2. 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.