Come usare per loop nel comando AWK

Come usare per loop nel comando AWK
Loop viene utilizzato per eseguire alcune istruzioni più volte. L'iterazione del ciclo in base alla condizione di terminazione o al numero degli elementi dell'array. Tre tipi di loop sono supportati da qualsiasi linguaggio di programmazione. Per loop è uno di questi. Per loop può essere dichiarato in due modi. Semplice per loop contiene tre parti. E un altro per loop è un ciclo per l'uso per iterare qualsiasi elenco di dati o array. Questo tutorial mostra l'uso di questi due tipi di loop nel comando AWK usando vari esempi.

Sintassi:

  1. Per la dichiarazione del ciclo:
per (inizializzazione; condizione di terminazione; incremento/decremento)
dichiarazioni

La prima parte viene utilizzata per inizializzare la variabile per l'avvio per ciclo continuo. La seconda parte contiene la condizione di terminazione per controllare l'iterazione del ciclo e il ciclo continuerà fino a quando la condizione è vera. L'ultima parte increverà o diminuirà la variabile di inizializzazione in base alla prima parte.

  1. Dichiarazione per in-in
per (variabile in array/elenco)
dichiarazioni

for-in Il ciclo è usato per svolgere quei compiti in cui il numero di iterazione del ciclo non è fisso. for-in Loop viene utilizzato principalmente per analizzare un array o un elenco di dati. Il loop legge ogni dati dall'array o dall'elenco e memorizza il valore a una variabile in ogni iterazione.

Esempio-1: usando Simple for Loop

Un loop semplice viene utilizzato nel seguente script. Qui, contatore La variabile è inizializzata per 10 e il ciclo terminerà quando il valore di contatore è meno di 5. Lo script stamperà il contatore Valori da 10 a 5. Esegui il comando dal terminale.

$ echo | awk 'for (counter = 10; counter> = 5; counter--)
Stampa "Running For", Counter ", Times.","\N"; '

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il comando.

Esempio-2: Utilizzo del loop for-in per leggere un array

Un array denominato cliente è dichiarato nel seguente script in cui il cliente id è impostato come indice di array e quello del cliente nome è impostato come valore dell'array. for-in Loop viene utilizzato qui per iterare ogni indice dall'array e stampare il nome del cliente. Esegui lo script dal terminale.

$ echo | Awk 'Begin Customer ["4587"] = "Neil Johnson";
Cliente ["8953"] = "Ella Binte Nazir";
Cliente ["3455"] = "Bruce Hyslop";
Cliente ["6335"] = "Isabella";
End for (i in cliente)
Stampa "Il nome di", i, "è", cliente [i]
'

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-3: usando nidificato per loop

Quando viene dichiarato un ciclo per un altro per loop, viene chiamato nidificato per loop. Il ciclo esterno utilizzato in questo script iterirà per 2 volte e il ciclo interno iterirà per 3 volte. Quindi, l'istruzione di stampa eseguirà per, (2x3 = 6) 6 volte. Esegui lo script dal terminale.

$ echo | awk 'end for (i = 1; i<=2; i++)
per (j = 1; j<=3; j++)
Stampa "Iterating Row", i, "e colonna", j, "\ n"; '

Produzione:

Il seguente output apparirà dopo aver eseguito lo script.

Esempio-4: Utilizzando per loop con istruzione di pausa

rottura L'istruzione viene utilizzata in qualsiasi ciclo per terminare il ciclo prima di raggiungere la condizione di terminazione in base alla condizione particolare. Nello script seguente, il loop inizierà da 3 e terminerà quando il valore di io è maggiore di 20. Ma quando il valore di io sarà uguale alla variabile Num allora la condizione se sarà vera e il ciclo terminerà per il rottura dichiarazione.

$ echo | awk 'inizio num = 7; End for (i = 3; i<=20; i++)
if (i == num) pausa;
altro
Stampa "Valore corrente di i =", i, "\ n"; '

Produzione:

Qui, se la condizione è falsa per quattro iterazioni quando il valore di io è 3,4,5 e 6. Quindi, la seguente uscita viene stampata per le quattro iterazioni.

Esempio-5: usando per loop con l'istruzione Continua

L'istruzione continua viene utilizzata in qualsiasi ciclo per omettere qualsiasi istruzione in base a qualsiasi condizione particolare. Un array chiamato Prodotto è dichiarato nel seguente script. for-in Loop viene utilizzato per iterare l'array e controllare ogni valore con "Software Office". Se il valore corrisponde, un messaggio non disponibile verrà stampato omettendo il messaggio disponibile per l'istruzione Continua, altrimenti il ​​messaggio non disponibile verrà stampato. Esegui lo script dal terminale.

$ echo | Awk 'Begin Product ["1001"] = "Antivirus";
Prodotto ["1002"] = "Software Office";
Prodotto ["1003"] = "software di disegno";
Prodotto ["1004"] = "HDD";
Product ["1005"] = "dvd"; end for (i in Product)
if (Product [i] == "Office Software")
Prodotto di stampa [i], "non è disponibile \ n";
Continua;

Prodotto di stampa [i], "è disponibile", "\ n"; '

Produzione:

Il seguente output apparirà dopo aver eseguito lo script.

Esempio-6: usando per loop nel file AWK

Crea un file di testo denominato saldi.TXT e aggiungi i seguenti contenuti per praticare questo esempio.

saldi.TXT

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Crea un file AWK chiamato cal_sal.Awk con il seguente script per calcolare l'importo totale delle vendite del file saldi.TXT. Il secondo campo contiene l'importo di vendita annuale nel file saldi.TXT. Nella sceneggiatura, I saldi L'array memorizzerà tutti i valori del secondo campo e somma La variabile viene inizializzata con 0 per aggiungere tutti i valori di saldi vettore. Prossimo, for-in Loop è usato per iterare ogni elemento di I saldi array e aggiungere il valore con il somma variabile. Infine, l'istruzione di stampa viene utilizzata per stampare il valore di somma variabile per visualizzare l'importo totale delle vendite.

cal_sal.Awk


vendite [i ++] = $ 2;
somma = 0;

FINE
per (i nelle vendite)

Sum = Sum+Sales [i];

Stampa "totale di vendita totale =" somma;

Esegui il comando seguente per eseguire lo script di Cal_Sal.file awk.

$ awk -f cal_sal.Vendite AWK.TXT

Produzione:

Ci sono 5 record nel saldi.TXT Il file e la somma dell'importo delle vendite sono 409000 che vengono stampati dopo aver eseguito lo script.

Conclusione:

Diversi usi di per loop nel comando awk sono tentati di spiegare in questo tutorial. Spero, il lettore avrà un'idea chiara sull'utilizzo del loop in Awk Script e in grado di utilizzare per loop correttamente nella programmazione AWK.