Come utilizzare l'istruzione condizionale nel comando AWK

Come utilizzare l'istruzione condizionale nel comando AWK
L'istruzione condizionale viene utilizzata in qualsiasi linguaggio di programmazione per eseguire qualsiasi istruzione in base a una particolare condizione. L'istruzione condizionale viene eseguita in base al valore vero o falso quando le istruzioni IF-ELSE e IF-ELSEIF vengono utilizzate per scrivere l'istruzione condizionale nella programmazione. AWK supporta tutti i tipi di dichiarazioni condizionali come altri linguaggi di programmazione. In questo tutorial è visualizzato come diverse dichiarazioni condizionali.

Sintassi:

La sintassi per quattro tipi di istruzioni condizionali è menzionata di seguito.

  1. If Dichiarazione
if (condizione)
dichiarazione

L'istruzione esegue quando la condizione if restituisce vera.

  1. Dichiarazione If-Else
if (condizione)
Dichiarazione-1

altro
Dichiarazione-2

L'istruzione-1 esegue quando la condizione if è vera e l'istruzione-2 esegue quando restituisce false.

  1. Dichiarazione IF-ELSEIF
if (condizione)
Dichiarazione-1

Elseif
Dichiarazione-2

Elseif
Dichiarazione-3

.. .
altro
Dichiarazione-N

Questa istruzione condizionale viene utilizzata per l'esecuzione di un'istruzione in base a più se condizioni. Se la prima condizione è falsa, controlla la seconda condizione. Se la seconda condizione è falsa, allora controlla la terza condizione e così via. Se tutte le condizioni restituiscono false, eseguirà la dichiarazione di altrimenti.

  1. Ternario (?:) Operatore
(condizione) ? Dichiarazione-1: Dichiarazione-2

L'operatore ternario può essere utilizzato come alternativa all'istruzione IF-ELSE. Se la condizione è vera, l'istruzione-1 verrà eseguita e se la condizione falsa, allora l'istruzione-2 verrà eseguita.

Esempio-1: usando Simple If in AWK

Crea un file di testo denominato Empiete.TXT Con i seguenti contenuti. Supponiamo che tu debba scoprire il nome del dipartimento, l'età e lo stipendio del dipendente il cui documento di identità è 11002.

dipendente.TXT

11001 vendite 45 $ 3000
11002 ore 32 $ 1500
11003 Marketing 26 $ 1200
11004 ore 25 $ 2500

Una condizione IF semplice viene utilizzata nel seguente script per cercare l'ID 11002 nel primo campo del file. Se la condizione diventa vera, allora stamperà i valori degli altri campi della linea corrispondente, altrimenti nulla verrà stampato.

$ awk '
if ($ 1 == "11002")

Stampa "Nome del dipartimento:", $ 2, "\ n";
Stampa "Age:", $ 3, "\ n";
stampare "stipendio:", $ 4 ", \ n";

' dipendente.TXT

Produzione:

L'ID, 1102 esiste nel file. Quindi, ha stampato gli altri valori del dipendente.

Esempio-2: usando if-else in awk

Supponiamo che tu voglia stampare le informazioni salariali 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 questa attività. C'è solo un dipendente in dipendente.TXT File la cui età ha più di 40 e tutta l'età dei dipendenti è inferiore a 40 anni.

$ awk '
Se ($ 3 <= 40)

Stampa "Lo stipendio di", $ 1, "è", $ 4, "\ n"

altro

Stampa "The Age of", $ 1, "Is", $ 3, "\ n"

' dipendente.TXT

Produzione:

Il seguente output apparirà dopo aver eseguito lo script.

Esempio-3: usando IF-ELSEIF in AWK Script

Crea un file di testo denominato persona.txt con i seguenti contenuti.

persona.TXT

Jackson Male Business
Martin Male Service Holder
Lily Female Manager
CEO maschio di Robinson

Crea un file awk denominato 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 verificare con un valore particolare. Se il primo Se la condizione diventa falsa, quindi controllerà il secondo Se condizione e così via. Quando una condizione se diventa vera, verrà assegnato un valore di colore. Se tutte le condizioni diventano false, allora Nessuno sarà assegnato come valore di colore. Il colore preferito di ogni persona stamperà o "Nessuna persona trovata" Stamparrà se nessun nome di persona corrisponde.

if_elseif.Awk


nome = $ 1;
if (name == "jackson") color = "blu";
else if (name == "Martin") color = "Black";
else if (name == "lily") color = "rosso";
else if (name == "Robinson") color = "White";
else color = "Nessuno";
Se (colore!= "Nessuno") stampare "il colore preferito di", nome, "è", colore;
altrimenti stampare "nessuna persona trovata";

Esegui il comando seguente per eseguire il file if_elseif.Awk con la persona.TXT

$ awk -f if_elseif.persona awk.TXT

Produzione:

Il seguente output apparirà dopo aver eseguito il comando.

Esempio-4: usando l'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 corrisponde al terzo valore di campo con "Manager". Se il valore corrisponde, stampa il nome della persona e altrimenti stamperà il genere della persona.

$ awk 'print ($ 3 == "manager") ? "Nome is" $ 1: "Gender è" $ 2 ".TXT

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script. Una persona con "professione manager esiste nel persona.TXT. Quindi, il nome di una persona è stampato e il genere è stampato per altre persone.

Esempio-5: utilizzando più condizioni nell'istruzione IF

Logico o logico e può essere utilizzato 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. Logico ed è usato in Se condizione. Quando il valore di età è maggiore o uguale a 30 e la designazione è "HR", l'ID e lo stipendio corrispondente e lo stipendio.

$ awk 'if ($ 3> = 30 && $ 2 == "hr") ID dipendente ",
$ 1, "e", "stipendio:", $ 4, "\ n"; 'Employee.TXT

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script. Esiste un solo dipendente con la designazione, "HR" in dipendente.TXT. Le informazioni di ID e salario per questo dipendente sono stampate qui.

Conclusione:

Gli usi più comuni della dichiarazione condizionale di qualsiasi programmazione standard sono supportati dal comando AWK. Come puoi usare le condizioni singole e multiple in AWK viene spiegato utilizzando esempi molto semplici qui. Speranza Dopo aver praticato questi esempi, lo studente sarà in grado di utilizzare correttamente la dichiarazione condizionale in sceneggiatura awk.