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 baseada em uma condição específica. A declaração condicional é executada com base no valor true ou falsa quando as instruções if-else e if-elseif são usadas para escrever a declaração condicional na programação. A 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. If Declaração
if (condição)
declaração

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

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

outro
Declaração 2

A declaração-1 é executada quando a condição IF é verdadeira e a declaração-2 é executada quando se retornar.

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

elseif
Declaração 2

elseif
Declaração-3

.. .
outro
declaração-n

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

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

O operador ternário pode ser usado como uma alternativa da declaração IF-ELSE. Se a condição é verdadeira, a declaração-1 será executada e se a condição falsa, então a instrução 2 será executada.

Exemplo 1: Usando simples se em Awk

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

funcionário.TXT

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

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

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

imprimir "Nome do departamento:", US $ 2, "\ n";
imprimir "Age:", $ 3, "\ n";
imprimir "Salário:", US $ 4, "\ n";

' funcionário.TXT

Saída:

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

Exemplo 2: Usando if-else em Awk

Suponha que você queira imprimir as informações salariais dos funcionários cuja idade é menor ou igual a 40 e imprimir as informações da idade para outros funcionários. O seguinte script AWK pode fazer esta tarefa. Existe apenas um funcionário em funcionário.TXT arquivo cuja idade é superior a 40 e toda a idade de outros funcionários é inferior a 40.

$ awk '
se ($ 3 <= 40)

Imprima "O Salário de", US $ 1 "é", US $ 4, "\ n"

outro

Imprima "The Age of", US $ 1, "é", US $ 3, "\ n"

' funcionário.TXT

Saída:

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

Exemplo 3: Usando if-elseif em script AWK

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

pessoa.TXT

JACKSON MASCULINO NEGÓCIO
Martin masculino titular de serviço
Lily Feminina Gerente
Robinson CEO masculino

Crie um arquivo AWK chamado if_elseif.Awk com o código a seguir para imprimir a cor favorita de cada pessoa cujo nome existe no arquivo. A instrução if-elseif é usada no script para realizar esta tarefa. O script lerá o primeiro valor de campo do arquivo, funcionário.TXT e verifique com um valor específico. Se o primeiro se a condição se torna falsa, então verificará o segundo se condição e assim por diante. Quando qualquer condição se for 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 vai imprimir ou “Nenhuma pessoa encontrada” Imprimirá se nenhum nome de pessoa corresponder.

if_elseif.Awk


nome = $ 1;
if (nome == "Jackson") color = "azul";
caso contrário, if (nome == "martin") color = "preto";
caso contrário, se (nome == "lily") color = "vermelho";
caso contrário, if (nome == "robinson") color = "branco";
else color = "nenhum";
if (cor!= "Nenhum") imprimir "a cor favorita de", nome "é", cor;
caso contrário, imprima "Nenhuma pessoa encontrada";

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

$ awk -f if_elseif.pessoa estranha.TXT

Saída:

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

Exemplo-4: Usando o operador ternário em AWK

O terceiro campo de pessoa.TXT o arquivo contém a profissão de cada pessoa. O operador ternário a seguir lê cada linha do arquivo e corresponde ao terceiro valor de campo com “Gerente”. Se o valor corresponder, ele imprimirá o nome da pessoa e de outra forma imprimirá o gênero da pessoa.

$ awk 'print ($ 3 == "gerente") ? "Nome é" $ 1: "Gênero é" $ 2 'pessoa.TXT

Saída:

A saída a seguir aparecerá após a execução do script. Uma pessoa com “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

Lógico ou e lógico e pode ser usado para definir várias condições na declaração condicional do script AWK. O script AWK a seguir lê cada linha de funcionário.TXT e verifica a idade e a designação com valores específicos. Lógico e é usado no se doença. Quando o valor da idade é maior ou igual a 30 e a designação é "HR", o ID e o salário correspondentes do funcionário serão impressos.

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

Saída:

A saída a seguir aparecerá após a execução do script. Existe apenas um funcionário com a designação "HR" em funcionário.TXT. Informações de identificação e salário para este funcionário são impressas aqui.

Conclusão:

Os usos mais comuns da declaraçã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 poderá usar a declaração condicional corretamente no script AWK.