Como usar para loop no comando AWK

Como usar para loop no comando AWK
O loop é usado para executar algumas declarações várias vezes. A iteração do loop com base na condição de rescisão ou no número de elementos da matriz. Três tipos de loops são suportados por qualquer linguagem de programação. Para o loop é um deles. Para o loop pode ser declarado por duas maneiras. Simples para loop contém três partes. E outro para loop é para o loop que é usado para iterar qualquer lista de dados ou matriz. Este tutorial mostra o uso desses dois tipos de loops no comando AWK usando vários exemplos.

Sintaxe:

  1. para declaração de loop:
para (inicialização; condição de terminação; incremento/decremento)
declarações

A primeira parte é usada para inicializar a variável para iniciar para laço. A segunda parte contém a condição de terminação para controlar a iteração do loop e o loop continuará até que a condição seja verdadeira. A última parte aumentará ou diminuirá a variável de inicialização com base na primeira parte.

  1. Declaração para dentro
para (variável na matriz/lista)
declarações

para-in O loop é usado para realizar as tarefas em que o número de iteração do loop não é consertado. para-in O loop é usado principalmente para analisar uma matriz ou lista de dados. O loop lê cada dados da matriz ou lista e armazena o valor para uma variável em cada iteração.

Exemplo 1: Usando simples para loop

Um loop simples é usado no script a seguir. Aqui, contador A variável é inicializada por 10 e o loop terminará quando o valor de contador é menor que 5. O script imprimirá o contador valores de 10 a 5. Execute o comando do terminal.

$ echo | awk 'for (contador = 10; contador> = 5; contador--)
Imprima "Running for", Counter, "Times."," \ n "; '

Saída:

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

Exemplo 2: Usando o loop for-in para ler uma matriz

Uma matriz chamada cliente é declarada no seguinte script onde o cliente eu ia é definido como um índice de matriz e o cliente nome é definido como valor de matriz. para-in O loop é usado aqui para iterar cada índice da matriz e imprimir o nome do cliente. Execute o script do terminal.

$ echo | awk 'BEGIN Customer ["4587"] = "Neil Johnson";
Cliente ["8953"] = "ella binte nazir";
Cliente ["3455"] = "Bruce Hyslop";
Cliente ["6335"] = "Isabella";
End for (i no cliente)
Imprima "O nome de", i, "é", cliente [i]
'

Saída:

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

Exemplo-3: Usando aninhados para loop

Quando um loop for declarado sob outro para o loop, é chamado de aninhado para loop. O loop externo que é usado neste script irá itera por 2 vezes e o loop interno itera por 3 vezes. Portanto, a declaração de impressão será executada para (2x3 = 6) 6 vezes. Execute o script do terminal.

$ echo | awk 'end for (i = 1; i<=2; i++)
para (j = 1; j<=3; j++)
Imprima "linha de iteração", i, "e coluna", j, "\ n"; '

Saída:

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

Exemplo-4: Usando o loop com a declaração de quebra

quebrar A declaração é usada em qualquer loop para encerrar o loop antes de atingir a condição de rescisão com base na condição específica. No script a seguir, para o loop começará a partir de 3 e terá terminado quando o valor de eu é maior que 20. Mas quando o valor de eu será igual à variável num Então a condição se a condição será verdadeira e o loop terá terminado para o quebrar declaração.

$ echo | awk 'Begin num = 7; End for (i = 3; i<=20; i++)
if (i == num) quebra;
outro
Imprimir "Valor atual de i =", i, "\ n"; ''

Saída:

Aqui, se a condição for falsa para quatro iterações quando o valor de eu é 3,4,5 e 6. Então, a saída a seguir é impressa para as quatro iterações.

Exemplo 5: Usando o loop com a declaração Continuar

Continuar a declaração é usada em qualquer loop para omitir qualquer declaração com base em qualquer condição específica. Uma matriz nomeada produtos é declarado no seguinte script. para-in O loop é usado para iterar a matriz e verificar cada valor com “Software de escritório““. Se o valor corresponder, uma mensagem indisponível imprimirá omitindo a mensagem disponível para continuar a instrução, caso contrário, a mensagem indisponível imprimirá. Execute o script do terminal.

$ echo | awk 'Begin Product ["1001"] = "Antivirus";
produto ["1002"] = "software de escritório";
produto ["1003"] = "Software de desenho";
produto ["1004"] = "HDD";
produto ["1005"] = "dvd"; end for (i no produto)
if (produto [i] == "Software Office")
Produto de impressão [i], "não está disponível \ n";
continuar;

Produto de impressão [i], "está disponível", "\ n"; ''

Saída:

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

Exemplo 6: Usando o loop no arquivo AWK

Crie um arquivo de texto chamado vendas.TXT e adicione o seguinte conteúdo para praticar este exemplo.

vendas.TXT

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Crie um arquivo AWK nomeado cal_sal.Awk com o script a seguir para calcular o valor total das vendas do arquivo vendas.TXT. O segundo campo contém o valor de vendas anuais no arquivo vendas.TXT. No script, as vendas a matriz armazenará todos os valores do segundo campo e soma A variável é inicializada com 0 para adicionar todos os valores de vendas variedade. Próximo, para-in O loop é usado para iterar cada elemento de as vendas matriz e adicione o valor com o soma variável. Por fim, a declaração de impressão é usada para imprimir o valor de soma variável para exibir o valor total de vendas.

cal_sal.Awk


vendas [i ++] = $ 2;
soma = 0;

FIM
para (i em vendas)

soma = soma+vendas [i];

imprimir "valor total de vendas =" soma;

Execute o seguinte comando para executar o script de cal_sal.arquivo AWK.

$ awk -f cal_sal.vendas awk.TXT

Saída:

Existem 5 registros no vendas.TXT Arquivo e a soma do valor das vendas é 409000 impressa após a execução do script.

Conclusão:

Diferentes usos do loop no comando AWK é tentado explicar neste tutorial. Esperança, o leitor terá uma idéia clara sobre o uso do loop no script AWK e capaz de usar o loop corretamente na programação AWK.