Awk

Come usare l'istruzione condizionale nel comando awk

Come usare l'istruzione condizionale nel comando awk
L'istruzione condizionale viene utilizzata in qualsiasi linguaggio di programmazione per eseguire qualsiasi istruzione basata su una particolare condizione. L'istruzione condizionale viene eseguita in base al valore true o false quando le istruzioni if-else e if-elseif vengono utilizzate per scrivere l'istruzione condizionale nella programmazione. Awk supporta tutti i tipi di istruzioni condizionali come altri linguaggi di programmazione.  In questo tutorial viene mostrato come possono essere utilizzate diverse istruzioni condizionali nel comando awk.

Sintassi:

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

  1. se dichiarazione
se (condizione)
dichiarazione

L'istruzione viene eseguita quando la condizione if restituisce true.

  1. dichiarazione if-else
se (condizione)
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.

  1. dichiarazione if-elseifif
se (condizione)
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.

  1. ternario (?:) operatore
(condizione) ? affermazione-1: affermazione-2

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   $ 3000
11002  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      Affari
MARTIN      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.TXT

Produzione:

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.TXT

Produzione:

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.

Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...
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...