GNU/Linux >> Linux Esercitazione >  >> Ubuntu

10 fantastici esempi di comandi Awk in Linux

Awk è l'utilità più popolare sviluppata allo scopo di estrarre dati, elaborare testi e, inoltre, creare report formattati. È molto più simile a sed ma più potente di sed poiché sed ha dei limiti nell'elaborazione del testo. AWK non ha un significato specifico per il suo nome in quanto viene nominato utilizzando la prima lettera dei suoi sviluppatori Alfred Aho, Peter J. Weinberger e Brian Kernighan.

In questo articolo impareremo 10 fantastici comandi awk che devi conoscere. Ho creato e aggiunto il seguente set di dati in student.txt come esempio. Il set di dati ha 4 colonne in cui il primo campo contiene il nome, il secondo campo contiene il secondo nome, il terzo campo contiene età e l'ultimo contiene la classe.

Stampa di un campo specifico utilizzando la variabile

Awk ha molte variabili predefinite che hanno il loro rispettivo scopo. Usando questo comando possiamo stampare tutti i dati del campo specifico usando $x dove x si riferisce alla posizione di numerazione del campo.

$ awk '{print $1, $2}' student.txt

Variabile BEGIN

La variabile BEGIN viene utilizzata per aggiungere un'intestazione o un titolo ai dati risultanti mentre eseguiva lo script prima di elaborare i dati. Aiuta nell'indicizzazione durante la formattazione delle tabelle di dati. Nell'esempio seguente, ho stampato del testo come indicizzazione e quindi ho stampato tutti i nomi degli studenti.

$ awk 'BEGIN {print "Students : "} {print $1}' student.txt

Variabile FINE

END è esattamente l'opposto di BEGIN poiché esegue lo script dopo l'elaborazione dei dati. Può essere utilizzato per la rendicontazione finale del set di dati. Nell'esempio seguente, ho stampato tutta l'età degli studenti e poi ho stampato alcuni messaggi finali.

$ awk '{print $3}

END {

print "These are student age "

} ' student.txt

Separatore di file

Spazio e Tab spazio sono separatori predefiniti del comando awk, tuttavia possiamo separare il testo in base ad altri separatori come virgola, barra, ecc. Per ottenere ciò dobbiamo aggiungere il flag -F al comando e il separatore di fornitura tra virgolette singole .

$ awk -F':' '{print $1}' /etc/passwd

Esecuzione di script da file

Possiamo anche eseguire lo script awk dal file che ci fornisce la tendenza a creare report in modo efficiente. Per questo, è necessario creare il file, quindi scrivere lo script ed eseguirlo utilizzando il comando awk. Per la demo, puoi creare un nome file demo_script e copiare e incollare il seguente script.

$ vi demo_script

{

sum+=$3

}

END {

print("Sum of all student age is", sum)

}

Il comando awk fornisce un flag -f per eseguire lo script dal file.

$ awk -f demo_script student.txt

Utilizzo di più script

Possiamo eseguire più script usando il punto e virgola. Nell'esempio seguente, ho stampato del testo, quindi reindirizza l'output, con awk e stampato il risultato modificato.

$ echo "Hello, Dr. John" | awk '{$3="George"; print $0}'

Conta numero di righe

Possiamo assegnare il numero al report utilizzando la variabile NR che è una variabile incorporata awk che stampa automaticamente il numero di riga sul report.

$ awk '{print NR "\t" $0}' student.txt

Conta numero di campi

A volte, durante la preparazione dei dati, ci siamo dimenticati di aggiungere i dati nella colonna specifica che potrebbe causare irregolarità nel rapporto. Possiamo contare i campi utilizzando la variabile NF che ci semplifica la revisione e l'organizzazione dei rapporti.

$ awk '{print NR".",$0 "\n Count=" NF}' student.txt

Se Condizione

Possiamo usare if condition nella preparazione di un report condizionale. Nell'esempio seguente, stampiamo tutti gli studenti la cui età è inferiore a 16 anni

$ awk '

BEGIN{

print "Student whose age are under 16 are:"

}

{

if($3<16){

print $1

}

}' student.txt

Per il ciclo

Nell'esempio seguente, usiamo il ciclo for per stampare 5 numeri casuali in successione. Per generare numeri casuali useremo la funzione rand() che è una funzione integrata nel sistema. Questa funzione genererà un numero casuale in decimale, quindi dobbiamo moltiplicare 100 per ottenere numeri casuali da 1 a 100.

$ awk 'BEGIN {

for (i = 1; i <= 5; i++){

print int(100 * rand())

}

}'

Conclusione

In questo articolo, abbiamo appreso dei 10 fantastici comandi e script awk. Spero che questo articolo ti piaccia.


Ubuntu
  1. 8 Esempi di comandi TR Linux

  2. Esempi di comandi rm in Linux

  3. ps Esempi di comandi in Linux

  4. sa Esempi di comandi in Linux

  5. w Esempi di comandi in Linux

10 esempi di comandi iftop in Linux

20 fantastici esempi di comandi Nmap in Linux

Comando awk di Linux con 10 esempi

Esempi di comandi touch di Linux

Comando IP Linux con esempi

Esempi di comandi id in Linux