Successivo: Programmi di esempio, Precedente: Funzioni, Su: Top [Contenuti][Indice]
awk
awk
Funzioni definite dall’utente descrive come scrivere le proprie
funzioni awk
personali. Scrivere funzioni è importante, perché
consente di incapsulare in un unico contenitore algoritmi e azioni di
programma. Semplifica la programmazione, rendendo lo sviluppo di un programma
più gestibile, e rendendo i programmi più leggibili.
Nel loro autorevole libro del 1976, Software Tools,66 Brian Kernighan e P.J. Plauger hanno scritto:
A programmare bene non s’impara dai concetti generali, ma vedendo come programmi complessi possono essere resi puliti, facili da leggere, facili da manutenere e modificare, strutturati in modo comprensibile, efficienti e affidabili, applicando il buon senso e delle buone pratiche di programmazione. Lo studio attento e l’imitazione di buoni programmi conduce a una migliore scrittura.
In effetti, loro reputavano quest’idea tanto importante da mettere questa
frase sulla copertina del libro. Poiché credo fermamente che la loro
affermazione sia corretta, questo capitolo e
Programmi utili scritti in awk
forniscono una corposa raccolta di codice da leggere e, si spera, da cui
imparare.
Questo capitolo illustra una libreria di utili funzioni awk
.
Molti dei programmi descritti nel seguito di questo Documento
usano queste funzioni.
Le funzioni sono illustrate progressivamente, dalla più semplice alla più
complessa.
Estrarre programmi da un file sorgente Texinfo
illustra un programma che si può usare per estrarre il codice sorgente
degli esempi di funzioni di libreria e di programmi dal sorgente Texinfo
di questo Documento.
(Questo è già stato fatto durante la preparazione della distribuzione
di gawk
.)
Chi avesse scritto una o più funzioni awk
utili e di uso
generale, e volesse metterle a disposizione della comunità degli utenti di
awk
, può leggere le informazioni contenute in
Come collaborare.
I programmi contenuti in questo capitolo e in
Programmi utili scritti in awk
,
utilizzano anche le funzionalità specifiche di gawk
.
Riscrivere questi programmi per implementazioni di awk
diverse
è piuttosto semplice:
gawk
.
nextfile
(vedi la sezione L’istruzione nextfile
)
per evitare di leggere gli input ancora non letti dal file in input corrente.
IGNORECASE
.
Si può ottenere quasi lo stesso effetto67
aggiungendo la seguente regola
all’inizio del programma:
# ignora maiuscolo/minuscolo { $0 = tolower($0) }
Inoltre, si verifichi che tutte le regexp e le costanti di tipo stringa usate nei confronti utilizzano solo lettere minuscole.
• Nomi di variabili di libreria | Che nomi è meglio dare alle variabili private globali nelle funzioni di libreria. | |
• Funzioni di tipo generale | Funzioni di uso generale. | |
• Gestione File Dati | Funzioni per gestire file-dati specificati sulla riga di comando. | |
• Funzione getopt | Una funzione per trattare argomenti presenti sulla riga di comando. | |
• Funzioni Passwd | Funzioni per ottenete informazioni sull’utente [da /etc/passwd]. | |
• Funzioni Group | Funzioni per ottenete informazioni sul gruppo [da /etc/group]. | |
• Visitare vettori | Una funzione per visitare vettori di vettori. | |
• Sommario funzioni di libreria | Sommario funzioni di libreria | |
• Esercizi con le librerie | Esercizi. |
Purtroppo, a distanza di oltre 35 anni, molte delle lezioni impartite da questo libro devono ancora essere apprese da un gran numero di programmatori professionisti.
I risultati non sono identici.
L’output del record trasformato sarà tutto in minuscolo, mentre
IGNORECASE
preserva il contenuto originale del record in input.
Successivo: Programmi di esempio, Precedente: Funzioni, Su: Top [Contenuti][Indice]