Sintassi:
- per la dichiarazione del ciclo:
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à finché la condizione non sarà vera is. L'ultima parte aumenterà o diminuirà la variabile di inizializzazione in base alla prima parte.
- per-in dichiarazione
dichiarazioni
per-in loop viene utilizzato per eseguire quei compiti in cui il numero di iterazioni del ciclo non è fisso. per-in loop viene utilizzato principalmente per analizzare un array o un elenco di dati. Il ciclo legge ogni dato dall'array o dall'elenco e memorizza il valore in una variabile in ogni iterazione.
Esempio 1: utilizzo di un ciclo for semplice
Un semplice ciclo for viene utilizzato nel seguente script. Qui, contatore viene inizializzata da 10 e il ciclo terminerà quando il valore di value contatore è inferiore a 5. Lo script stamperà il contatore valori da 10 a 5. Esegui il comando da terminale.
$ eco | awk ' for (contatore = 10; contatore >= 5; contatore--)stampa "In corsa per", contatore, " volte.","\n"; '
Produzione:
Il seguente output apparirà dopo aver eseguito il comando.
Esempio 2: utilizzo del ciclo for-in per leggere un array
Un array denominato Customer viene dichiarato nello script seguente in cui il customer's id è impostato come indice dell'array e quello del cliente nome è impostato come valore dell'array. per-in loop viene utilizzato qui per iterare ogni indice dall'array e stampare il nome del cliente. Esegui lo script dal terminale.
$ eco | awk 'BEGIN Cliente["4587"] = "Neil Johnson";Customer["8953"] = "Ella binte Nazir";
Cliente["3455"] = "Bruce Hyslop";
Cliente["6335"] = "Isabella";
END per (i in Cliente)
print "Il nome di ", i, " è " ,Cliente[i]
'
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Esempio 3: utilizzo di un ciclo for annidato
Quando un ciclo for viene dichiarato sotto un altro ciclo for, viene chiamato ciclo for annidato. Il ciclo esterno utilizzato in questo script itera per 2 volte e il ciclo interno itera per 3 volte. Quindi, l'istruzione print verrà eseguita per, (2X3=6) 6 volte. Esegui lo script dal terminale.
$ eco | awk 'END per (i=1; i<=2; i++)per (j=1; j<=3; j++)
print "Riga iterativa ", i" e colonna ", j,"\n";'
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Esempio-4: utilizzo del ciclo for con l'istruzione break
rompere l'istruzione viene utilizzata in qualsiasi ciclo per terminare il ciclo prima di raggiungere la condizione di terminazione basata sulla particolare condizione. Nello script seguente, il ciclo for inizierà da 3 e terminerà quando il valore di io è maggiore di 20. Ma quando il valore di io sarà uguale alla variabile numero allora la condizione if sarà vera e il ciclo terminerà per il rompere dichiarazione.
$ eco | awk 'BEGIN num=7; END per (i=3; i<=20; i++)if( i == num) break;
altro
print "Valore attuale di i =",i ,"\n";'
Produzione:
Qui, se la condizione è falsa per quattro iterazioni quando il valore di io è 3,4,5 e 6. Quindi, viene stampato il seguente output per le quattro iterazioni.
Esempio-5: utilizzo del ciclo for con l'istruzione continue
L'istruzione Continue viene utilizzata in qualsiasi ciclo per omettere qualsiasi istruzione basata su una particolare condizione. Un array chiamato Prodotto è dichiarato nel seguente script. per-in loop viene utilizzato per iterare l'array e controllare ogni valore con "Software per ufficio“. Se il valore corrisponde, verrà stampato un messaggio non disponibile omettendo il messaggio disponibile per l'istruzione continue, altrimenti verrà stampato un messaggio non disponibile. Esegui lo script dal terminale.
$ eco | awk 'BEGINproduct["1001"]="Antivirus";prodotto["1002"]="Software per ufficio";
prodotto["1003"]="Software di disegno";
prodotto["1004"]="HDD";
prodotto["1005"]="DVD"; FINE per (i nel prodotto)
if(prodotto[i] == "Software Office")
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: Utilizzo del ciclo for nel file awk
Crea un file di testo chiamato i saldi.TXT e aggiungi il seguente contenuto per mettere in pratica questo esempio.
i saldi.TXT
2015 700002016 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 i saldi.TXT. Il secondo campo contiene l'importo delle vendite annuali nel file i saldi.TXT. Nella sceneggiatura, I saldi array memorizzerà tutti i valori del secondo campo e somma la variabile è inizializzata con 0 per aggiungere tutti i valori di i saldi Vettore. Il prossimo, per-in loop viene utilizzato per iterare ogni elemento di I saldi array e aggiungi il valore con il somma variabile. Infine, l'istruzione print 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 (io nelle vendite)
somma=somma+vendite[i];
print "Importo totale vendite=" somma;
Esegui il seguente comando per eseguire lo script di cal_sal.file awk.
$ awk -f cal_sal.vendite imbarazzanti.TXTProduzione:
Ci sono 5 record nel i saldi.TXT file e la somma dell'importo delle vendite è 409000 che viene stampato dopo l'esecuzione dello script.
Conclusione:
In questo tutorial si tenta di spiegare diversi usi del ciclo for nel comando awk. Spero che il lettore abbia un'idea chiara sull'uso del ciclo for nello script awk e in grado di utilizzare correttamente il ciclo for nella programmazione awk.