Awk

Come usare il ciclo for nel comando awk

Come usare il ciclo for nel comando awk
Il ciclo 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. For loop è uno di questi. Il ciclo For può essere dichiarato in due modi. Il ciclo semplice per contiene tre parti.  E un altro ciclo for è il ciclo for-in che viene utilizzato 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:
for (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à finché la condizione non sarà vera is. L'ultima parte aumenterà o diminuirà la variabile di inizializzazione in base alla prima parte.

  1. per-in dichiarazione
for (variabile in array/elenco)
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 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 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.TXT

Produzione:

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.

Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...
I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...