Awk

Como usar a declaração condicional no comando awk

Como usar a declaração condicional no comando awk
A declaração condicional é usada em qualquer linguagem de programação para executar qualquer declaração com base em uma condição particular. A declaração condicional é executada com base no valor verdadeiro ou falso quando as declarações if-else e if-elseif são usadas para escrever a declaração condicional na programação. Awk suporta todos os tipos de declarações condicionais como outras linguagens de programação.  Como diferentes declarações condicionais podem ser usadas no comando awk é mostrado neste tutorial.

Sintaxe:

A sintaxe para quatro tipos de declarações condicionais é mencionada abaixo.

  1. declaração if
if (condição)
demonstração

A instrução é executada quando a condição if retorna verdadeira.

  1. declaração if-else
if (condição)
declaração-1

senão
declaração-2

A instrução 1 é executada quando a condição if é verdadeira e a instrução 2 é executada quando if retorna falso.

  1. declaração if-elseif
if (condição)
declaração-1

elseif
declaração-2

elseif
declaração-3

… .
senão
declaração-n

Esta declaração condicional é usada para executar uma declaração baseada em múltiplas condições if. Se a primeira condição for falsa, ele verifica a segunda condição. Se a segunda condição for falsa, ele verifica a terceira condição e assim por diante. Se todas as condições retornarem falsas, ele executará a instrução da outra parte.

  1. Ternário (?:) operador
(doença) ? declaração-1: declaração-2

O operador ternário pode ser usado como alternativa à instrução if-else. Se a condição for verdadeira, a instrução 1 será executada e se a condição for falsa, a instrução 2 será executada.

Exemplo-1: Usando simples se em awk

Crie um arquivo de texto chamado empregado.TXT com o seguinte conteúdo. Suponha que você precise descobrir o nome do departamento, a idade e o salário do funcionário cuja id é 11002.

empregado.TXT

11001 Vendas 45 $ 3000
11002 HR 32 $ 1500
11003 Marketing 26 $ 1200
11004 HR 25 $ 2500

Uma condição if simples é usada no script a seguir para pesquisar o id 11002 no primeiro campo do arquivo. Se a condição se tornar verdadeira então iráimprimir os valores dos outros campos da linha correspondente caso contrário nada seráimpresso.

$ awk '
if ($ 1 == "11002")

imprimir "Nome do Departamento:", $ 2, "\ n";
imprimir "Idade:", $ 3, "\ n";
imprimir "Salário:", $ 4, "\ n";
 

' empregado.TXT

Resultado:

O id, 1102 existe no arquivo. Então, imprimiu os outros valores do funcionário.

Exemplo 2: Usando if-else no awk

Suponha que você queira imprimir as informações de salário dos funcionários com idade inferior ou igual a 40 e imprimir as informações de idade de outros funcionários. O seguinte script awk pode fazer esta tarefa. Há apenas um funcionário em empregado.TXT arquivo com idade superior a 40 e a idade de todos os outros funcionários é inferior a 40.

$ awk '
if ($ 3 <= 40)

print "O salário de", $ 1, "é", $ 4, "\ n"

senão

print "A idade de", $ 1, "é", $ 3, "\ n"

 
' empregado.TXT

Resultado:

A seguinte saída aparecerá após a execução do script.

Exemplo-3: Usando if-elseif em um script awk

Crie um arquivo de texto chamado pessoa.txt com o seguinte conteúdo.

pessoa.TXT

JACKSON Masculino Empresarial
Titular de serviço masculino MARTIN
LILY Feminino Gerente
ROBINSON Masculino CEO

Crie um arquivo awk chamado if_elseif.awk com o seguinte código para imprimir a cor favorita de cada pessoa cujo nome existe no arquivo. A instrução If-elseif é usada no script para fazer esta tarefa. O script irá ler o primeiro valor de campo do arquivo, empregado.TXT e verifique com um valor particular. Se o primeiro E se condição se torna falsa, então ele irá verificar o segundo E se condição e assim por diante. Quando qualquer condição se tornar verdadeira, um valor de cor será atribuído. Se todas as condições se tornarem falsas, então Nenhum será atribuído como o valor da cor. A cor favorita de cada pessoa será impressa ou “Nenhuma pessoa encontrada” irá imprimir se nenhum nome de pessoa corresponder.

if_elseif.awk


nome = $ 1;
if (nome == "JACKSON") cor = "Azul";
else if (name == "MARTIN") color = "Black";
else if (name == "LILY") color = "Red";
else if (name == "ROBINSON") color = "White";
else color = "Nenhum";
 
if (cor!= "Nenhum") print "A cor favorita de", nome, "é", cor;
else print "Nenhuma pessoa encontrada";
 

Execute o seguinte comando para executar o arquivo if_elseif.acordar com pessoa.TXT

$ awk -f if_elseif.pessoa estranha.TXT

Resultado:

A seguinte saída aparecerá após a execução do comando.

Exemplo 4: Usando o operador ternário no awk

O terceiro campo de pessoa.TXT arquivo contém a profissão de cada pessoa. O seguinte operador ternário lê cada linha do arquivo e combina o terceiro valor de campo com “Gerente”. Se o valor corresponder, o nome da pessoa será impresso e, caso contrário, será impresso o sexo da pessoa.

$ awk 'print ($ 3 == "Gerente") ? "Nome é" $ 1: "Sexo é" $ 2 'pessoa.TXT

Resultado:

A seguinte saída aparecerá após a execução do script. Uma pessoa com “A profissão de gerente existe no pessoa.TXT. Então, o nome de uma pessoa é impresso e o gênero é impresso para outras pessoas.

Exemplo 5: Usando várias condições na instrução if

OR lógico e AND lógico podem ser usados ​​para definir várias condições na declaração condicional do script awk. O seguinte script awk lê cada linha de empregado.TXT e verifica a idade e designação com valores particulares. E lógico é usado no E se doença. Quando o valor da idade for maior ou igual a 30 e a designação for "RH", o ID do funcionário e o salário correspondentes serão impressos.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") print "ID do funcionário:",
$ 1, "e", "Salário:", $ 4, "\ n"; 'funcionário.TXT

Resultado:

A seguinte saída aparecerá após a execução do script. Existe apenas um funcionário com a designação, "RH" em empregado.TXT. As informações de identificação e salário deste funcionário são impressas aqui.

Conclusão:

Os usos mais comuns da instrução condicional de qualquer programação padrão são suportados pelo comando awk. Como você pode usar condições únicas e múltiplas no awk é explicado usando exemplos muito simples aqui. Espero que, depois de praticar esses exemplos, o aluno seja capaz de usar a instrução condicional corretamente em um script awk.

Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...
SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...