Ricerca nel sito web

Come scrivere script utilizzando il linguaggio di programmazione Awk - Parte 13


Dall'inizio della serie Awk fino alla Parte 12, abbiamo scritto piccoli comandi e programmi Awk rispettivamente sulla riga di comando e negli script di shell.

Tuttavia, Awk, proprio come Shell, è anche un linguaggio interpretato, quindi, con tutto ciò che abbiamo illustrato dall'inizio di questa serie, ora puoi scrivere script eseguibili Awk.

Similmente a come scriviamo uno script di shell, gli script Awk iniziano con la riga:

#! /path/to/awk/utility -f 

Ad esempio, sul mio sistema, l'utilità Awk si trova in /usr/bin/awk, pertanto, avvierei uno script Awk come segue:

#! /usr/bin/awk -f 

Spiegando la riga sopra:

  1. #! – indicato come Shebang, che specifica un interprete per le istruzioni in uno script
  2. /usr/bin/awk – è l'interprete
  3. -f – opzione dell'interprete, utilizzata per leggere un file di programma

Detto questo, tuffiamoci ora nell'esame di alcuni esempi di script eseguibili Awk, possiamo iniziare con il semplice script seguente. Utilizza il tuo editor preferito per aprire un nuovo file come segue:

vi script.awk

E incolla il codice qui sotto nel file:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Salvare il file ed uscire, quindi rendere eseguibile lo script emettendo il comando seguente:

chmod +x script.awk

Successivamente, eseguilo:

./script.awk
Uscita del campione
Writing my first Awk executable script!

Un programmatore critico là fuori si starà chiedendo: “dove sono i commenti?”, sì, puoi anche includere commenti nel tuo script Awk. Scrivere commenti nel codice è sempre una buona pratica di programmazione.

Aiuta altri programmatori a esaminare il tuo codice per capire cosa stai cercando di ottenere in ogni sezione di uno script o di un file di programma.

Pertanto, puoi includere commenti nello script sopra come segue.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Successivamente, vedremo un esempio in cui leggiamo l'input da un file. Vogliamo cercare un utente di sistema denominato aaronkilik nel file dell'account, /etc/passwd, quindi stampare il nome utente, l'ID utente e l'utente GID come segue:

Di seguito è riportato il contenuto del nostro script chiamato second.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Salvare il file ed uscire, rendere eseguibile lo script ed eseguirlo come di seguito:

chmod +x second.awk
./second.awk /etc/passwd
Uscita del campione
Username : aaronkilik User ID : 1000 User GID : 1000

Nell'ultimo esempio seguente, utilizzeremo l'istruzione do while per stampare i numeri da 0-10:

Di seguito è riportato il contenuto del nostro script chiamato do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

Dopo aver salvato il file, rendi eseguibile lo script come abbiamo fatto prima. Successivamente, eseguilo:

chmod +x do.awk
./do.awk
Uscita del campione
0
1
2
3
4
5
6
7
8
9
10

Riepilogo

Siamo giunti alla fine di questa interessante serie Awk, spero che tu abbia imparato molto da tutte le 13 parti, come introduzione al linguaggio di programmazione Awk.

Come ho detto dall'inizio, Awk è un linguaggio di elaborazione testo completo, per questo motivo puoi imparare altri aspetti del linguaggio di programmazione Awk come variabili ambientali, array, funzioni (integrate e definite dall'utente) e altro ancora.

Ci sono ancora parti aggiuntive della programmazione Awk da imparare e padroneggiare, quindi, di seguito, ho fornito alcuni collegamenti a importanti risorse online che puoi utilizzare per espandere le tue capacità di programmazione Awk, queste non sono necessariamente tutto ciò di cui hai bisogno, puoi anche cercare fuori per utili libri di programmazione Awk.

Link di riferimento: Guida per l'utente di GNU Awk e Programmazione del linguaggio AWK

Per qualsiasi pensiero che desideri condividere o domanda, utilizza il modulo di commento qui sotto. Ricordati di rimanere sempre connesso a Tecmint per serie più emozionanti.