awk

awk (scritto anche come Awk e AWK) è un'utilità che consente a un programmatore di scrivere programmi minuscoli ma efficaci sotto forma di istruzioni che definiscono schemi di testo che devono essere cercati in ogni riga di un documento e l'azione che deve essere eseguita presa quando viene trovata una corrispondenza all'interno di una riga. awk viene fornito con la maggior parte dei sistemi operativi basati su UNIX come Linux e anche con alcuni altri sistemi operativi, come Windows 95/98 / NT.

Un programma awk è costituito da pattern e azioni da eseguire quando viene trovata una corrispondenza di pattern. awk analizza le righe di input in sequenza ed esamina ciascuna di esse per determinare se contiene un modello che corrisponde a uno specificato dall'utente. Quando viene trovato il modello di corrispondenza, awk esegue le istruzioni nel programma. Ad esempio, awk potrebbe scansionare il testo per una parte critica e riformattare il testo in esso contenuto in base al comando dell'utente. Se non viene specificato alcun pattern, il programma eseguirà il comando su tutti i dati di input.

awk suddivide ogni riga in campi, che sono gruppi di caratteri con spazi che agiscono come separatori in modo che una parola, ad esempio, sia un campo. Una stringa è racchiusa tra barre rovesciate e le azioni da eseguire sono racchiuse tra parentesi graffe. Le righe sono numerate in ordine di apparizione, con "0" riferito all'intera riga. "$" è il simbolo del campo. Quindi, ad esempio, per cercare una riga contenente la parola "noce moscata" e per stampare ogni riga in cui ricorre la parola, il programma awk sarebbe composto da:

/ noce moscata / {print $ 0}.

Il nome "awk" deriva dai nomi dei suoi tre sviluppatori: Alfred Aho, Peter Weinberger e Brian Kernighan. È stato sviluppato dalla sintassi grep, C e sed, una combinazione che consente di sviluppare rapidamente programmi complessi. awk viene spesso utilizzato per la prototipazione. Le versioni di awk includono awk Portable Operating System Interface, New awk (Nawk) e GNU awk (Gawk). Il linguaggio Practical Extraction and Reporting Language è stato sviluppato come una versione migliorata di awk, con cui Perl è retrocompatibile. (als