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


B.3.1.3 Usare gawk su sistemi operativi PC

Sotto MS-Windows, gli ambienti Cygwin e MinGW consentono di usare sia l’operatore ‘|&’ che le operazioni su rete TCP/IP (vedi Reti TCP/IP).

Le versioni MS-Windows di gawk ricercano i file di programma come descritto in AWKPATH (Variabile). Comunque, gli elementi della variabile AWKPATH sono separati tra di loro da un punto e virgola (anziché da due punti (:)). Se AWKPATH è non impostata o ha per valore la stringa nulla, il percorso di ricerca di default è ‘.;c:/lib/awk;c:/gnu/lib/awk’.

Sotto MS-Windows, gawk (come molti altri programmi di trattamento testi) converte automaticamente la stringa di fine riga ‘\r\n’ in ‘\n’ leggendo dall’input e ‘\n’ in ‘\r\n’ scrivendo sull’output. La variabile speciale BINMODE (e.c.) permette di controllare come avvengono queste conversioni, ed è interpretata come segue:

La modalità di trattamento dello standard input e standard output sono impostate una volta sola (dopo aver letto la riga di comando, ma prima di iniziare a elaborare qualsiasi programma awk). L’impostazione di BINMODE per standard input o standard output va fatta usando un’appropriata opzione ‘-v BINMODE=N’ sulla riga di comando. BINMODE è impostato nel momento in cui un file o pipe è aperto e non può essere cambiato in corso di elaborazione.

Il nome BINMODE è stato scelto in analogia con mawk (vedi Altre versioni). mawk e gawk gestiscono BINMODE in maniera simile; tuttavia, mawk prevede un’opzione ‘-W BINMODE=N’ e una variabile d’ambiente che può impostare BINMODE, RS, e ORS. I file binmode[1-3].awk (nella directory gnu/lib/awk in alcune delle distribuzioni binarie già predisposte) sono stati inclusi per rendere disponibile l’opzione di mawk-W BINMODE=N’. Questi possono essere modificati o ignorati; in particolare, quale sia l’impostazione di RS che dà meno “sorprese” rimane una questione aperta. mawk usa ‘RS = "\r\n"’ se si imposta la modalità binaria in lettura, il che è appropriato per file che abbiano i caratteri di fine riga in stile MS-DOS.

Per chiarire, gli esempi seguenti impostano la modalità binaria in scrittura per lo standard output e altri file, e impostano ORS in modo da ottenere la fine riga “normale” in stile MS-DOS:

gawk -v BINMODE=2 -v ORS="\r\n" …

o:

gawk -v BINMODE=w -f binmode2.awk …

Questi comandi danno lo stesso risultato dell’opzione ‘-W BINMODE=2’ in mawk. Quanto segue modifica il separatore di record a "\r\n" e imposta la modalità binaria in lettura, senza modificare le letture da standard input:

gawk -v RS="\r\n" -e "BEGIN { BINMODE = 1 }" …

o:

gawk -f binmode1.awk …

Usando i caratteri di protezione appropriati, nel primo esempio l’impostazione di RS può essere spostata in una regola BEGIN.


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