Sintaxe:
A sintaxe para quatro tipos de declarações condicionais é mencionada abaixo.
if (condição)
declaração
A declaração é executada quando a condição if retorna verdadeira.
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.
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.
(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.
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.