Successivo: , Precedente: , Su: Installazione   [Contenuti][Indice]


B.5 Altre implementazioni di awk liberamente disponibili

È piuttosto divertente mettere commenti simili nel vostro codice awk:
      // Funzionano i commenti in stile C++? Risposta: sì! certo

Michael Brennan

Ci sono alcune altre implementazioni di awk disponibili gratuitamente. Questa sezione descrive in breve dove è possibile trovarle:

Unix awk

Brian Kernighan, uno degli sviluppatori originali di Unix awk, ha reso disponibile liberamente la sua implementazione di awk. Può essere scaricata da GitHub:

git clone git://github.com/onetrueawk/awk bwkawk

Questo comando crea una copia del deposito Git in una directory chiamata bwkawk. Se si omette l’ultimo argomento della riga di comando git, la copia del deposito è creata in una directory di nome awk.

Questa versione richiede un compilatore ISO C (standard 1990); il compilatore C contenuto in GCC (la collezione di compilatori GNU) è più che sufficiente.

Per eseguire la compilazione, si rivedano le impostazioni nel file makefile, e quindi si richiami semplicemente make. Si noti che il risultato della compilazione ha come nome a.out; questo file va rinominato in maniera adeguata.

Vedi la sezione Sommario Estensioni Comuni per una lista di estensioni in questo awk che non sono in POSIX awk.

Incidentalmente, Dan Bornstein ha creato un deposito Git che contiene tutte le versioni di BWK awk che è riuscito a trovare. È disponibile in git://github.com/danfuzz/one-true-awk.

mawk

Michael Brennan ha scritto un’implementazione indipendente di awk, di nome mawk. È disponibile sotto la licenza GPL (vedi la sezione Licenza Pubblica Generale GNU (GPL)), proprio come gawk.

Il sito di distribuzione originale di mawk non contiene più il codice sorgente. Una copia è disponibile in http://www.skeeve.com/gawk/mawk1.3.3.tar.gz.

Dal 2009 è Thomas Dickey a occuparsi della manutenzione di mawk. Le informazioni di base sono disponibili nella pagine web del progetto. Il puntatore URL da cui scaricare è http://invisible-island.net/datafiles/release/mawk.tar.gz.

Una volta scaricato, per scompattare questo file può essere usato gunzip. L’installazione è simile a quella di gawk (vedi la sezione Compilare e installare gawk su sistemi di tipo Unix).

Vedi la sezione Sommario Estensioni Comuni per una lista di estensioni in mawk che non sono in POSIX awk.

mawk 2.0

Nel 2016, Michael Brennan ha iniziato nuovamente lo sviluppo di mawk. Le sue versioni di sviluppo sono disponibili tramite Git dalla pagina GitHub del progetto.

awka

Scritto da Andrew Sumner, awka traduce i programmi awk in C, li compila, e prepara il codice eseguibile usando una libreria di funzioni che implementano le funzionalità di base di awk. Comprende anche un certo numero di estensioni.

Il traduttore di awk è rilasciato sotto la licenza GPL, e la relativa libreria sotto la licenza LGPL.

Per ottenere awka, si visiti il sito https://sourceforge.net/projects/awka.

Il progetto sembra essere stato congelato; non ci sono state modifiche nel codice sorgente dal 2001 circa.

pawk

Nelson H.F. Beebe all’Università dello Utah ha modificato BWK awk per fornire informazioni di temporizzazione e profilazione. Questo è differente dall’usare gawk con l’opzione --profile (vedi la sezione Profilare i propri programmi awk) nel senso che fornisce un profilo basato sul consumo di CPU, non sul numero di esecuzioni di una data riga di codice. Sia può trovare sia in ftp://ftp.math.utah.edu/pub/pawk/pawk-20030606.tar.gz che in http://www.math.utah.edu/pub/pawk/pawk-20030606.tar.gz.

BusyBox awk

BusyBox è un programma distribuito con licenza GPL che fornisce versioni ridotte di parecchie piccole applicazioni, all’interno di un singolo modulo eseguibile. È stato ideato per sistemi integrati. Include un’implementazione completa di POSIX awk. Quando lo si compila occorre prestare attenzione a non eseguire ‘make install’, perché in questo modo si andrebbero a sostituire copie di altre applicazioni nella directory /usr/local/bin del sistema corrente. Per ulteriori informazioni, si veda la pagina principale del progetto.

POSIX awk per OpenSolaris

Le versioni di awk in /usr/xpg4/bin e /usr/xpg6/bin su Solaris sono grosso modo conformi allo standard POSIX. Sono basate sul comando awk preparato per i PC dalla ditta Mortice Kern. È stato possibile compilare e far funzionare questo codice sotto GNU/Linux dopo 1–2 ore di lavoro. Rendere questo codice più generalmente portabile (usando gli strumenti GNU Autoconf e/o Automake) richiederebbe ulteriore lavoro, che non è stato fin qui compiuto, almeno per quel che risulta a chi scrive.

Il codice sorgente era un tempo disponibile dal sito web OpenSolaris. Tuttavia, il progetto è terminato, e il sito web chiuso. Fortunatamente, il progetto Illumos mette a disposizione questa implementazione. Si possono vedere i singoli file in https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/awk_xpg4.

goawk

Questo è un interpretatore di awk scritto nel Linguaggio di programmazion Go. Implementa POSIX awk, con alcune estensioni minori. Il codice sorgente è disponibile in https://github.com/benhoyt/goawk. L’autore ha scritto un buon articolo che descrive l’implementazione.

jawk

Questo è un interprete per awk scritto in Java. Dichiara di essere un interprete completo, anche se, poiché usa funzionalità di Java per l’I/O e per la ricerca di regexp, il linguaggio che supporta è differente da awk POSIX. Ulteriori informazioni sono disponibili sulla pagina principale del progetto.

Libmawk

Questo è un interprete awk incorporabile, derivato da mawk. Per ulteriori informazioni, si veda http://repo.hu/projects/libmawk/.

awk incorporabile di Mircea Neacsu
incorporabile, awk, di Mircea Neacsu

Mircea Neacsu ha creato un interpretatore awk incorporabile, basato su BWK awk. È disponibile nel sito https://github.com/neacsum/awk.

pawk

Questo è un modulo Python che intende introdurre funzionalità di tipo awk in Python. Si veda https://github.com/alecthomas/pawk per ulteriori informazioni. (Questo programma non è correlato con la versione modificata da Nelson Beebe di BWK awk, descritta prima.)

QSE awk

Questo è un interprete di awk incorporabile. Per ulteriori informazioni, si veda https://code.google.com/p/qse/.

QTawk

Questa è un’implementazione indipendente di awk distribuita con la licenza GPL. Ha un gran numero di estensioni rispetto ad awk standard, e può non essere sintatticamente compatibile al 100% con esso. Si veda http://www.quiktrim.org/QTawk.html per ulteriori informazioni, compreso il manuale. Il puntatore per scaricare QuikTrim non punta all’ultima versione: si veda http://www.quiktrim.org/#AdditionalResources per un puntatore alla versione corrente.

Il progetto sembra essere fermo; non ci sono nuove versioni del codice a partire dal 2014 circa.

Altre versioni

Si veda anche [in inglese] la sezione “Versions and implementations” della voce di Wikipedia su awk per informazioni su ulteriori versioni.


Successivo: , Precedente: , Su: Installazione   [Contenuti][Indice]