Sintassi:
La sintassi per quattro tipi di istruzioni condizionali è menzionata di seguito.
- se dichiarazione
dichiarazione
L'istruzione viene eseguita quando la condizione if restituisce true.
- dichiarazione if-else
dichiarazione-1
altro
dichiarazione-2
L'istruzione-1 viene eseguita quando la condizione if è vera e l'istruzione-2 viene eseguita quando if restituisce false.
- dichiarazione if-elseifif
dichiarazione-1
altrimenti
dichiarazione-2
altrimenti
dichiarazione-3
… .
altro
dichiarazione-n
Questa istruzione condizionale viene utilizzata per eseguire un'istruzione basata su più condizioni if. Se la prima condizione è falsa, controlla la seconda condizione. Se la seconda condizione è falsa, controlla la terza condizione e così via. Se tutte le condizioni restituiscono false, eseguirà l'istruzione di else part.
- ternario (?:) operatore
L'operatore ternario può essere utilizzato in alternativa all'istruzione if-else. Se la condizione è vera verrà eseguita l'istruzione-1 e se la condizione è falsa verrà eseguita l'istruzione-2.
Esempio 1: utilizzo di simple if in awk
Crea un file di testo chiamato dipendente.TXT con il seguente contenuto. Supponiamo che tu debba scoprire il nome del dipartimento, l'età e lo stipendio del dipendente il cui ID è 11002.
dipendente.TXT
11001 Vendite 45 $ 300011002 Risorse umane 32 $1500
11003 Marketing 26 $ 1200
11004 Risorse umane 25 $2500
Una semplice condizione if viene utilizzata nello script seguente per cercare l'id 11002 nel primo campo del file. Se la condizione diventa vera allora stamperà i valori degli altri campi della riga corrispondente altrimenti non verrà stampato nulla nothing.
$ awk 'if($1 =="11002")
print "Nome Reparto: ",$2,"\n";
print "Età: ",$ 3,"\n";
print "Salario: ",$4,"\n";
' dipendente.TXT
Produzione:
L'id, 1102 esiste nel file. Quindi, ha stampato gli altri valori del dipendente.
Esempio 2: utilizzo di if-else in awk
Supponiamo di voler stampare le informazioni sullo stipendio dei dipendenti la cui età è inferiore o uguale a 40 e stampare le informazioni sull'età per gli altri dipendenti. Il seguente script awk può fare questo compito. C'è solo un dipendente in dipendente.TXT file la cui età è superiore a 40 anni e l'età di tutti gli altri dipendenti è inferiore a 40.
$ awk 'se($3 <= 40)
print "Lo stipendio di ", $ 1, " è ", $ 4, "\ n"
altro
print "L'età di ",$1, " è ", $3, "\n"
' dipendente.TXT
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Esempio 3: utilizzo di if-elseif nello script awk
Crea un file di testo chiamato persona.txt con il seguente contenuto.
persona.TXT
JACKSON Uomo AffariMARTIN Uomo Titolare del servizio
LILY Donna Manager
ROBINSON Uomo CEO
Crea un file awk chiamato if_elseif.awk con il seguente codice per stampare il colore preferito di ogni persona il cui nome esiste nel file. L'istruzione If-elseif viene utilizzata nello script per eseguire questa attività. Lo script leggerà il primo valore di campo del file, dipendente.TXT e controlla con un valore particolare. Se il primo Se condizione diventa falsa, quindi controllerà il secondo Se condizione e così via. Quando una condizione if diventa vera, verrà assegnato un valore di colore. Se tutte le condizioni diventano false allora Nessuna verrà assegnato come valore del colore. Il colore preferito di ogni persona verrà stampato o “Nessuna persona trovata” stamperà se nessun nome di persona corrisponde.
if_elseif.awk
nome=$1;
if ( nome=="JACKSON" ) color="Blu";
else if (nome=="MARTIN") color="Nero";
else if (nome=="LILY") color="Rosso";
else if (nome=="ROBINSON") color="Bianco";
else color="Nessuno";
if(colore!="Nessuno") print "Il colore preferito di ", name, "is", color;
else print "Nessuna persona trovata";
Esegui il seguente comando per eseguire il file if_elseif.awk con persona.TXT
$ awk -f if_elseif.persona strana.TXTProduzione:
Il seguente output apparirà dopo aver eseguito il comando.
Esempio-4: utilizzo dell'operatore ternario in awk
Il terzo campo di persona.TXT il file contiene la professione di ogni persona. Il seguente operatore ternario legge ogni riga del file e abbina il valore del terzo campo con "Manager". Se il valore corrisponde, stamperà il nome della persona e altrimenti stamperà il genere della persona.
$ awk ' print ($3=="Gestore") ? "Il nome è " $1 : "Il sesso è " $2' persona.TXTProduzione:
Il seguente output apparirà dopo aver eseguito lo script. Una persona con “La professione di manager esiste nel persona.TXT. Quindi, viene stampato il nome di una persona e il genere viene stampato per altre persone.
Esempio-5: utilizzo di più condizioni nell'istruzione if
L'OR logico e l'AND logico possono essere utilizzati per definire più condizioni nell'istruzione condizionale dello script awk. Il seguente script awk legge ogni riga di dipendente.TXT e controlla l'età e la designazione con valori particolari. AND logico viene utilizzato nel used Se condizione. Quando il valore dell'età è maggiore o uguale a 30 e la designazione è "HR", verranno stampati l'ID dipendente e lo stipendio corrispondenti.
$ awk ' if ($3 >= 30 && $2 == "HR") print "ID dipendente: ",$1, " e ", "Stipendio: ", $4, "\n";' dipendente.TXT
Produzione:
Il seguente output apparirà dopo aver eseguito lo script. Esiste un solo dipendente con la designazione "HR" in dipendente.TXT. Le informazioni sull'ID e sullo stipendio di questo dipendente sono stampate qui.
Conclusione:
Gli usi più comuni dell'istruzione condizionale di qualsiasi programmazione standard sono supportati dal comando awk. Come puoi usare condizioni singole e multiple in awk è spiegato usando esempi molto semplici qui. Spero che dopo aver praticato questi esempi lo studente sarà in grado di usare correttamente l'istruzione condizionale nello script awk.