Successivo: Copia, Precedente: Concetti fondamentali, Su: Top [Contenuti][Indice]
La situazione in cui due processi che comunicano tra loro sono entrambi bloccati, in attesa che l’altro processo faccia qualcosa.
Un linguaggio di programmazione originalmente definito dal Department of Defense U.S.A. per la programmazione integrata. È stato progettato per favorire dei buoni metodi da seguire nell’ingegneria del software.
Si veda “Variabili d’ambiente”.
I metacaratteri regexp ‘^’ e ‘$’, che richiedono che la corrispondenza che si sta cercando si trovi all’inizio o alla fine di una stringa, rispettivamente.
Un’area del linguaggio le cui specifiche spesso non erano (o ancora non sono) chiare, col risultato di ottenere un comportamente inatteso o non desiderabile. Tali aree sono segnalate in questo Documento con “(a.b.)” nel testo e sono riportate nell’indice analitico sotto la voce “angolo buio”.
L’American National Standards Institute. Questo ente produce parecchi standard, e tra questi gli standard per i linguaggi di programmazione C e C++. Questi standard spesso diventano anche internazionali. Si veda anche “ISO”.
Un argomento può essere due cose differenti. Può essere un’opzione o un
nome-file passato a un comando mentre lo si invoca dalla riga dei comandi,
oppure può essere qualcosa passato a una funzione all’interno di un
programma, per esempio all’interno di awk
.
In quest’ultimo caso, un argomento può essere passato a una funzione in
due modi. Nel primo modo è passato come valore alla funzione chiamata,
ossia una copia del valore della variabile è reso disponibile alla funzione
chiamata, ma la variabile originale non può essere modificata dalla
funzione stessa. Nel secondo modo l’argomento è passato per riferimento,
ossia un puntatore alla variabile in questione è passato alla funzione, che
può quindi modificarla direttamente. In awk
le variabili scalari
sono passate per valore, e i vettori sono passati per riferimento.
Si veda “Passaggio per valore/riferimento”.
Arrotondare il risultato di un’operazione aritmetica può essere difficile.
C’è più di un modo di arrotondare, e in gawk
è possibile scegliere
quale metodo dovrebbe essere usato all’interno di un programma.
Vedi la sezione Impostare la modalità di arrotondamento.
Un’espressione awk
che cambia il valore di qualche variabile o
dato oggetto di awk
. Un oggetto a cui si può assegnare un valore
è detto un lvalue. I valori
assegnati sono chiamati rvalue.
Vedi la sezione Espressioni di assegnamento.
awk
Henry Spencer dell’Università di Toronto ha scritto un assembler adatto a
molti diversi hardware, usando solo script sed
e
awk
. È lungo migliaia di righe, e include
la descrizione dell’hardware di
numerosi micro-computer a 8 bit. È un
buon esempio di programma per cui sarebbe stato
meglio utilizzare un altro linguaggio.
Un’istruzione in un programma che afferma che una condizione è verificata in un dato punto di un programma. Utile per ragionare su come si suppone funzioni un programma.
Una serie di istruzioni awk
associate a una regola. Se
l’espressione di ricerca della regola individua un record in input,
awk
esegue su quel record l’azione relativa. Le azioni sono
sempre racchiuse tra parentesi graffe.
(Vedi la sezione Azioni).
La versione GNU della shell standard (il Bourne-Again SHell). Si veda anche “Bourne Shell”.
Notazione a base due, che usa le cifre 0
–1
. Poiché
i circuiti elettronici funzionano “naturalmente” in base 2
(basta pensare a Off/On), ogni cosa all’interno di un computer è
calcolata usando la base 2. Ciascuna cifra rappresenta la presenza
(o l’assenza) di una potenza di 2 ed è chiamata un bit.
Così, per esempio, il numero in base due 10101
rappresenta il
numero in base decimale 21,
((1 x 16) + (1 x 4) + (1 x 1)).
Poiché i numeri in base due diventano rapidamente molto lunghi sia da leggere che da scrivere, normalmente li si unisce a gruppi di tre (ossia, sono visti come numeri ottali) o a gruppi di quattro (ossia, sono visti come numeri esadecimali). Non c’è un modo diretto per inserire numeri a base due in un programma C. Se necessario, tali numeri vengono solitamente inseriti come numeri ottali o esadecimali. Il numero di cifre in base due contenuto nei registri usati per rappresentare i numeri interi all’interno dei computer è un’indicazione approssimativa della potenza di calcolo del computer stesso. La maggior parte dei computer oggi usa 64 bit per rappresentare i numeri interi nei registri di calcolo, ma registri a 32 bit, 16 bit e 8 bit sono stati largamente in uso in passato. Vedi la sezione Numeri ottali ed esadecimali.
Una particolare perla di saggezza, segno, detto o ricordo prodotto da (o presentato a) un programma. (Con vivi ringraziamenti al Prof. Doug McIlroy).
Abbreviazione di “Binary Digit” [cifra binaria].
Tutti i valori nella memoria di un computer sono rappresentati nella forma di
cifre binarie: valori che sono zero o uno.
Gruppi di bit possono essere interpretati differentemente — come numeri
interi, numeri in virgola mobile, dati di tipo carattere, indirizzi di altri
oggetti contenuti in memoria, o altri dati ancora.
awk
permette di lavorare con numeri in virgola mobile e stringhe.
gawk
permette di manipolare bit con le funzioni predefinite
descritte
in
Funzioni per operazioni di manipolazione bit.
I computer sono spesso definiti dal numero di bit che usano per rappresentare valori interi. Molti sistemi sono a 32-bit, ma i sistemi a 64-bit sono sempre più numerosi, mentre i sistemi a 16-bit [e quelli a 8-bit] sono praticamente scomparsi.
La shell standard (/bin/sh) in Unix e nei sistemi derivati da Unix,
Originariamente scritto da Steven R. Bourne dei Bell Laboratories.
Molte shell (Bash, ksh
, pdksh
, zsh
) sono
generalmente compatibili con la Bourne shell, anche quando offrono ulteriori
funzionalità.
Il linguaggio di programmazione di sistema con cui è scritta la maggior parte
del software GNU. Il linguaggio di programmazione awk
ha una
sintassi simile a quella del C, e
questo Documento puntualizza, quando serve, le somiglianze esistenti
fra awk
e C.
In generale, gawk
tenta di essere ragionevolmente simile alla
versione 1990 del C ISO.
La C Shell (csh
o la sua versione migliorata tcsh
) è una
shell Unix creata da Bill Joy verso la fine degli anni ’70. La C shell si
differenzia dalla altre shell per le sue funzionalità interattive, e per lo
stile complessivo, che è abbastanza simile a quello del linguaggio C.
La C shell non è compatibile all’indietro con la Bourne Shell, e per questo
motivo un’attenzione speciale è necessaria se si convertono alla C shell
degli script scritti per altre shell Unix, in particolare per ciò che
concerne la gestione delle variabili di shell.
Si veda anche “Bourne Shell”.
Un linguaggio di programmazione molto diffuso, orientato agli oggetti, derivato dal C.
Quando awk
legge un record in input, suddivide il record in parti
separate da spazi vuoti (o da una regexp che individua il separatore,
modificabile reimpostando la variabile predefinita FS
). Tali parti
sono dette campi. Se le parti sono di lunghezza fissa, si può usare la
variabile predefinita FIELDWIDTHS
per descriverne le lunghezze.
Se si desidera specificare i contenuti dei campi, piuttosto che il separatore
fra i campi, si può usare la variabile predefinita FPAT
per farlo.
(Vedi la sezione Specificare come vengono separati i campi,
Leggere campi di larghezza costante,
e
Definire i campi in base al contenuto).
L’insieme di codici numerici usati da un computer per rappresentare i caratteri (lettere, numeri, segni d’interpunzione, etc.) di un particolare paese o località. L’insieme di caratteri più comunemente in uso oggi è l’ASCII (American Standard Code for Information Interchange). Molti paesi europei usano un’estensione dell’ASCII nota come ISO-8859-1 (ISO Latin-1). L’insieme di caratteri Unicode sta guadagnando popolarità e affermandosi come standard, e il suo uso è particolarmente esteso nei sistemi GNU/Linux.
Un preprocessore per pic
che legge descrizioni di molecole
e produce l’input a pic
che serve a disegnarle.
È stato scritto in awk
da Brian Kernighan e Jon Bentley, ed è disponibile in
http://netlib.org/typesetting/chem.
Si veda “Espressione tra parentesi quadre”.
Un programma che traduce codici sorgente scritti in qualche linguaggio in codici eseguibili su un particolare computer. Il codice oggetto risultante può quindi essere eseguito direttamente dal computer. Si veda anche “Interprete”.
Concatenare due stringhe significa unirle, producendo una nuova stringa. Per esempio, la stringa ‘pippo’ concatenata con la stringa ‘pluto’ produce la stringa ‘pippopluto’. (Vedi la sezione Concatenazione di stringhe).
Un meccanismo interno di gawk
per minimizzare la quantità di
memoria necessaria per contenere il valore delle variabili di tipo
stringa. Se il valore assunto da una variabile è usato in più di un
posto nel programma, solo una copia del valore stesso è tenuta in
memoria, e il contatore di riferimenti ad esso associato è aumentato di
uno quando lo stesso valore è usato da un’ulteriore variabile, e diminuito
di uno quando la variabile relativa non è più utilizzata. Quando il
contatore di riferimenti va a zero, la parte di memoria utilizzata per
contenere il valore della variuabile è liberato.
Un programma subordinato con il quale è possibile una comunicazione bidirezionale dal programma principale.
Sono costituiti da numeri e stringhe di caratteri. I numeri sono convertiti in stringhe e viceversa, a seconda delle necessità. (Vedi la sezione Conversione di stringhe e numeri).
Un programma che serve agli sviluppatori per rimuovere “bug” (de-bug) dai loro programmi.
Un nome unico che identifica un’applicazione. Usato per raggruppare messaggi che sono tradotti in fase di esecuzione nel linguaggio locale.
Una rappresentazione di numeri all’interno del computer che ha una parte
espressa sotto forma di frazione. I numeri a doppia precisione hanno più
cifre decimali che quelli a singola precisione, ma le operazioni che la
usano consumano più risorse di quelle
eseguite in singola precisione. La doppia precisione è il formato con cui
awk
memorizza i valori numerici. Nel linguaggio C è il tipo di
dati detto double
.
Un programma che legge record da un flusso in input e li elabora uno o più alla volta. Questo è diverso da quel che farebbe un programma batch il quale potrebbe leggere completamente i file in input, prima di iniziare a fare alcunché, ed è diverso anche da un programma interattivo, che richiede input dall’utente [tipicamente, una riga alla volta].
Un effetto collaterale ha luogo quando un’espressione ha un effetto ulteriore, invece di produrre solo un valore. Espressioni di assegnamento, incremento e decremento, e invocazioni di funzioni hanno effetti collaterali. (Vedi la sezione Espressioni di assegnamento).
la data usata come “inizio del tempo” per i campi che contengono date. I valori del tempo nella maggior parte dei dei sistemi sono rappresentati in numero di secondi trascorsi dall’Epoca, con funzioni di libreria che consentono di convertire tali valori nei formati normali di data e ora.
L’Epoca nei sistemi Unix e POSIX parte dal primo gennaio 1970 alle ore 00:00:00 UTC. Si veda anche “GMT” e “UTC”.
Notazione per l’aritmetica in base 16, che usa le cifre 0
–9
e
le lettere A
–F
, con ‘A’
che rappresenta 10, ‘B’ che rappresenta 11, e così via, fino a
‘F’ per 15.
I numeri esadecimali sono scritti in C prefissandoli con ‘0x’,
per indicarne la base.
Quindi, 0x12
è 18 ((1 x 16) + 2).
Vedi la sezione Numeri ottali ed esadecimali.
Così detta dal nome del matematico inglese George Boole. Si veda anche “Espressione logica”.
Un’espressione che usa l’operatore ternario ‘?:’, come p.es. ‘expr1 ? expr2 : expr3’. Dell’espressione expr1 viene calcolato il valore; se risulta verificata, il valore dell’intera espressione diviene quello di expr2; altrimenti il valore è quello di expr3. In ogni caso, solo una delle due espressioni expr2 e expr3 viene calcolata. (Vedi la sezione Espressioni condizionali).
Una relazione che è vera o falsa, del tipo di ‘a < b’.
Espressioni di confronto sono usate nelle istruzioni
if
, while
, do
, for
e nelle espressioni di ricerca per scegliere quale record in input elaborare.
(Vedi la sezione Tipi di variabile ed espressioni di confronto).
Una parte di un’espressione regolare che permette di specificare
corrispondenze multiple di qualche parte della regexp. Le espressioni di
intervallo non erano originariamente ammesse nei programmi awk
.
Le espressioni di ricerca individuano per awk
a quali record in
input sono applicabili determinate
regole.
Un’espressione di ricerca [pattern] è un’espressione condizionale specifica che viene confrontata con ogni record in input. Se la corrispondenza esiste, si dice che il modello individua il record in input. Una tipica espressione di ricerca potrebbe confrontare il record in input con un’espressione regolare. (Vedi la sezione Elementi di un criterio di ricerca).
Un’espressione che usa gli operatori logici AND, OR e NOT,
scritti come ‘&&’, ‘||’, e ‘!’ in awk
.
Spesso chiamate espressioni booleane, dal nome del matematico che per primo
ha sistematizzato questo tipo di logica matematica.
un’espressione regolare (abbreviabile come “regexp”) è un modello che
descrive un assieme di stringhe, potenzialmente illimitato. Per esempio
l’espressione regolare
‘R.*xp’ corrisponde a qualsiasi stringa che inizia con la lettera
‘R’ e termina con le lettere ‘xp’. In awk
, le espressioni
regolari sono usate nei modelli [pattern] e nelle espressioni condizionali.
Le espressioni regolari possono contenere sequenze di protezione.
(Vedi la sezione Espressioni regolari).
Si veda “Espressioni regolari dinamiche”.
Un’espressione regolare costante è un’espressione regolare scritta tra barre,
come /pippo/
. A una tale espressione viene assegnato un valore quando
si scrive un programma awk
e non può essere modificata in fase di
esecuzione del programma. (Vedi la sezione Uso di espressioni regolari.)
Un’espressione regolare dinamica è un’espressione regolare scritta come
un’espressione normale. Potrebbe essere una costante stringa, come
"pippo"
, ma potrebbe anche essere un’espressione il cui valore è variabile
(Vedi la sezione Usare regexp dinamiche).
All’interno di una espressione regolare, un’espressione racchiusa fra parentesi quadre sta a indicare che un singolo carattere appartiene a una specifica classe di caratteri. Un’espressione tra parentesi quadre può contenere una lista di uno o più caratteri, come ‘[abc]’, un intervallo di caratteri, come ‘[A-Z]’, o un nome, delimitato da ‘:’, che designa un insieme di caratteri conosciuto, come ‘[:digit:]’. La forma di espressione tra parentesi quadre racchiusa tra ‘:’ è indipendente dalla rappresentazione binaria dei caratteri stessi, che potrebbe utilizzare le codifiche ASCII, EBCDIC, o Unicode, a seconda dell’architettura del computer, e della localizzazione. Si veda anche “Espressioni regolari”.
La negazione di una espressione tra parentesi quadre. Tutto ciò che non è descritto da una data espressione tra parentesi quadre. Il simbolo ‘^’ precede l’espressione tra parentesi quadre che viene negata. Per esempio: ‘[^[:digit:]]’ designa qualsiasi carattere che non sia una cifra. ‘[^bad]’ designa qualsiasi carattere che non sia una delle lettere ‘b’, ‘a’, o ‘d’. Si veda “Espressione tra parentesi quadre”.
Una funzionalità aggiunta o una modifica a un linguaggio di programmazione
o a un programma di utilità, non definita dallo standard di quel linguaggio
o di quel programma di utilità.
gawk
ha molte estensioni rispetto al POSIX awk
(fin
troppe).
Free Documentation License. Si veda “Licenza Documentazione Libera”.
Un nome-file interpretato internamente da gawk
, invece che
gestito direttamente dal sistema operativo in cui viene eseguito
gawk
— per esempio, /dev/stderr.
(Vedi la sezione Nomi-file speciali in gawk
).
Una variabile [di tipo booleano] che, se verificata, indica la presenza o l’assenza di qualche condizione.
Le stringhe di formato controllano il modo in cui le funzioni
strftime()
, sprintf()
e l’istruzione printf
visualizzano
l’output che producono. Inoltre, le conversioni da numeri a stringhe sono
controllate dalle stringhe di formato contenute nelle variabili predefinite
CONVFMT
e OFMT
. (Vedi la sezione Lettere di controllo del formato).
awf
)Henry Spencer all’Università di Toronto ha scritto un formattatore che
accetta un ampio sottoassieme dei comandi di formattazione ‘nroff -ms’
e ‘nroff -man’ usando
awk
e sh
.
Abbreviazione di FORmula TRANslator (traduttore di formule), è uno dei primi linguaggi di programmazione, pensato per il calcolo scientifico. È stato ideato da John Backus ed è disponibile a partire dal 1957. È ancora in uso ai giorni nostri.
Un’organizzazione senza fini di lucro dedicata alla produzione e distribuzione di software liberamente distribuibile. È stata fondata da Richard M. Stallman, l’autore dell’originale editor Emacs. GNU Emacs è la versione di Emacs maggiormente usata oggigiorno.
Si veda “Free Software Foundation”.
Una parte di un programma awk
che si può chiamare da qualsiasi
punto del programma, per eseguire un compito. awk
ha parecchie
funzioni predefinite.
Gli utenti possono definire essi stessi delle funzioni in qualsiasi parte
del programma. Le funzioni possono essere ricorsive, ossia possono
chiamare se stesse.
Vedi la sezione Funzioni.
In gawk
è anche possibile avere funzioni condivise tra diversi
programmi, incluse secondo necessità usando la direttiva
@include
(vedi la sezione Come includere altri file nel proprio programma).
In gawk
il nome della funzione da chiamare può essere generato
in fase di esecuzione, ossia in maniera dinamica.
L’estensione API di gawk
fornisce funzioni di costruzione
(vedi la sezione Funzioni per creare valori).
Il linguaggio awk
fornisce funzioni predefinite, che compiono
calcoli vari, di tipo numerico, di input/output e di tipo carattere. Esempi
sono sqrt()
([square root], la radice quadrata di un numero) e
substr()
(che estrae una sottostringa da una stringa).
gawk
fornisce funzioni per la gestione di data e ora,
le operazioni a livello di bit, l’ordinamento di
vettori, il controllo di tipo [di variabile] e la traduzione di stringhe
in fase di esecuzione di programma.
(Vedi la sezione Funzioni predefinite).
gawk
L’implementazione GNU di awk
.
Un documento che descrive le condizioni alle quali gawk
e i suoi
file sorgenti possono essere distribuiti. (Vedi la sezione Licenza Pubblica Generale GNU (GPL)).
“Greenwich Mean Time”. Il termine tradizionalmente usato per UTC. È la datazione usata internamente dai sistemi Unix e POSIX. Si veda anche “Epoca” e “UTC”.
“GNU’s not Unix” (GNU non è Unix). Un progetto della Free Software Foundation, ancora in corso, che mira a creare un ambiente di calcolo completo, liberamente distribuibile, aderente allo standard POSIX.
Una variante del sistema GNU che usa il kernel Linux, invece del kernel proprio della Free Software Foundation, noto come Hurd. Il kernel Linux è un clone di Unix stabile, efficiente, completo di tutte le funzionalità, ed è stato portato su varie architetture hardware. È molto diffuso su sistemi del tipo dei Personal Computer, ma funziona bene anche in parecchi altri computer. Il codice sorgente del kernel Linux è disponibile nei termini della GNU General Public License, la qual cosa è forse il suo aspetto più rilevante.
Si veda “General Public License”.
I caratteri ‘{’ e ‘}’. Le parentesi graffe sono usate in
awk
per delimitare azioni, istruzioni composte, e il codice che
costituisce le funzioni.
Una descrizione dei programmi awk
, nei quali si specifica quali sono
i dati che si vogliono elaborare, e cosa fare quando si trovano tali dati.
Abbreviazione per “Input/Output,” ovvero il trasferimento di dati da e verso un programma in esecuzione.
L’azione che consiste nel confrontare una stringa con un’espressione regolare. Se la regexp descrive qualcosa che è contenuto nella stringa, si dice che la individua.
La procedura con cui si scrive o si modifica un programma in modo che possa inviare messaggi in lingue differenti, senza richiedere ulteriori modifiche al codice sorgente.
Un numero intero, cioè un numero che non ha una parte frazionaria.
Un programma che accetta come input del codice sorgente, e usa le
istruzione contenute nello stesso per elaborare dati e fornire risultati.
awk
è tipicamente (ma non sempre) implementato come un interprete.
Si veda anche “Compilatore”.
Una sequenza di righe consecutive nel/nei file in input. Un’espressione di
ricerca può specificare intervalli di righe di input da far elaborare ad
awk
oppure può specificare singole righe.
(Vedi la sezione Elementi di un criterio di ricerca).
Acronimo di International Organization for Standardization. Questo ente elabora degli standard internazionali in vari settori, inclusi i linguaggi di programmazione, come il C e il C++. In ambito informatico, standard importanti come quelli per il C, C++, e POSIX sono allo stesso tempo standard nazionali americani e standard internazionali ISO. In questo Documento lo Standard C è chiamato “ISO C”. Si veda il sito web ISO per ulteriori informazioni sul nome dell’ente e sul suo acronimo di tre lettere, che rimane lo stesso in tutte le lingue.
Un’espressione all’interno di un programma awk
nella parte
"azione" di una regola criterio di ricerca–azione, o all’interno
di una funzione awk
. Un’espressione può essere un assegnamento
di variabile, un’operazione su un vettore, un ciclo, etc.
Una serie di istruzioni awk
, racchiuse tra parentesi graffe.
Le istruzioni composte possono essere nidificate [possono esserci più livelli
di parentesi graffe].
(Vedi la sezione Istruzioni di controllo nelle azioni).
Un’istruzione di controllo è un’istruzione per eseguire una data operazione
o un insieme di operazioni all’interno di un programma awk
,
se una determinata condizione è verificata.
Istruzioni di controllo sono: if
, for
, while
, e do
(vedi la sezione Istruzioni di controllo nelle azioni).
Un moderno linguaggio di programmazione originalmente sviluppato da Sun Microsystems (ora Oracle) che prevede la programmazione orientata agli oggetti. Sebbene normalmente sia implementato compilando le istruzioni per una macchina virtuale standard (la JVM — Java Virtual Machine) il linguaggio può essere compilato per essere eseguito in maniera nativa.
La Korn Shell (ksh
) è una shell Unix sviluppata da David Korn,
presso i Bell Laboratories, nei primi anni ’80. La Korn shell è
compatibile all’indietro con la Bourne shell e comprende molte funzionalità
presenti nella C Shell.
Si veda anche “Bourne Shell”.
Si veda “Licenza Documentazione Libera”.
Questo documento descrive i termini nei quali possono essere distribuiti degli archivi contenenti librerie in formato eseguibile o oggetti condivisi, e il relativo codice sorgente.
Si veda “Lesser General Public License”.
Questo documento descrive i termini in base ai quali questo Documento è pubblicato e può essere copiato. (Vedi la sezione Licenza per Documentazione Libera GNU (FDL)).
awk
Il linguaggio in cui i programmi awk
sono scritti.
Si veda “GNU/Linux”.
Si veda “Espressione tra parentesi quadre”.
La funzionalità che fornisce i dati necessari perché un programma internazionalizzato interagisca con l’utente in un particolare linguaggio.
[left-value, ossia valore a sinistra] Un’espressione che può stare alla
sinistra di un operatore di assegnamento.
Nella maggior parte dei linguaggi, gli lvalue possono essere variabili o
elementi di un vettore. In awk
, un designatore di campo può anche
essere usato come un lvalue.
Un valore nel formato “secondi a partire dall’epoch” usato dai sistemi Unix
e POSIX. Usato per le funzioni gawk
mktime()
, strftime()
, e systime()
.
Si veda anche “Epoca,” “GMT,” e “UTC”.
Caratteri usati all’interno di una regexp e che non rappresentano se stessi. Servono invece per rappresentare operazioni con espressioni regolari, come per esempio delle ripetizioni, dei raggruppamenti, o delle alternanze.
Una nidificazione si riscontra dove l’informazione è organizzata a strati,
o dove degli oggetti contengono altri oggetti simili.
In gawk
la direttiva @include
può essere nidificata. La nidificazione “naturale” delle operazioni
aritmetiche e logiche può essere modificato attraverso l’uso di parentesi.
(vedi la sezione Precedenza degli operatori (Come si nidificano gli operatori)).
Un’operazione che non fa nulla.
Un dato oggetto il cui valore è numerico. Le implementazioni di awk
usano numeri in virgola mobile in doppia precisione per rappresentare i numeri.
Le primissime implementazioni di awk
usavano numeri in virgola mobile
in singola precisione.
Spesso descritto, in termini matematici, come un numero “razionale” o reale, è soltanto un numero che può avere una parte frazionaria. Si veda anche “Doppia precisione” e “Singola precisione”.
Si veda “Metacaratteri”.
Notazione avente come base 8, nella quale le cifre sono 0
–7
.
I numeri ottali in C sono scritti premettendo uno ‘0’,
per indicare la base.
Quindi, 013
è 11 ((1 x 8) + 3).
Vedi la sezione Numeri ottali ed esadecimali.
Si veda “Graffe”.
nel linguaggio awk
, una parola chiave (keyword) è una parola
che ha un significato speciale. Queste parole sono riservate e non possono
essere usate come nomi di variabili.
Le parole chiave di gawk
sono:
BEGIN
,
BEGINFILE
,
END
,
ENDFILE
,
break
,
case
,
continue
,
default
,
delete
,
do…while
,
else
,
exit
,
for…in
,
for
,
function
,
func
,
if
,
next
,
nextfile
,
switch
,
e
while
.
Un acronimo inglese che descrive qual è probabilmente la causa più frequente di problemi nell’uso di un computer. (Problem Exists Between Keyboard and Chair [il problema si trova tra la tastiera e la sedia].)
In gawk
, una lista di directory in cui cercare file contenenti del
codice sorgente per awk
.
Nella shell, una lista di directory in cui ricercare un programma eseguibile.
Si veda “Estensione”.
Il nome di una serie di standard che specificano l’interfaccia di un Sistema
Operativo Portabile (Portable Operating System). La “IX” specifica
che questi standard sono stati originati dallo Unix.
Lo standard più rilevante per gli utenti awk
è lo
IEEE Standard for Information Technology, Standard 1003.1TM-2017
(Revisione dello Standard IEEE 1003.1-2008).
Lo standard POSIX 2018 può essere trovato in rete all’indirizzo:
https://pubs.opengroup.org/onlinepubs/9699919799/.
L’ordine in cui le operazioni sono eseguite quando si usano degli operatori se non si stabiliscono precedenze per mezzo di parentesi.
Variabili e/o funzioni che sono riservate all’uso esclusivo di funzioni di
libreria, e non per il programma principale awk
. Un’attenzione
particolare va prestata quando si desigano tali variabili e funzioni.
(Vedi la sezione Dare un nome a variabili globali in funzioni di libreria).
awk
Un programma awk
consiste in una serie di espressioni di
ricerca e azioni, che formano delle regole. Per ogni record in
input a un progranna, le regole del programma sono elaborate nell’ordine in
cui sono scritte. I programmi
awk
possono anche contenere definizioni di funzioni.
Si veda “Record in input” e “Record in output”.
Una singola parte di dati letta da awk
. Solitamente, un
record in input di awk
consiste in una riga di testo.
(Vedi la sezione Controllare come i dati sono suddivisi in record).
Un singolo pezzo di dati scritto da awk
. Solitamente, un
record in output di awk
consiste di una o più righe di testo.
Vedi la sezione Controllare come i dati sono suddivisi in record.
Quando una funzione chiama se stessa, direttamente o indirettamente. Se questo è chiaro, si può passare a leggere la definizione successiva. Altrimenti, si veda la voce “Ricorsione”.
Si veda “Espressione regolare”.
Un segmento di un programma awk
che specifica come trattare singoli
record in input. Una regola consiste in una espressione di ricerca e in
una azione.
awk
legge un record in input; poi, per ogni regola, se il record in
input soddisfa l’espressione di ricerca della regola, awk
esegue
l’azione specificata dalla regola.
Altrimenti, la regola non ha alcun effetto su quel record in input.
Ridirezione significa ricevere input da quaclosa che non sia il flusso dello standard input, o dirigere output a qualcosa di diverso dal flusso dello standard output.
Si può ridirigere input all’istruzione getline
usando gli operatori
‘<’, ‘|’, e ‘|&’.
Si può ridirigere l’output delle istruzioni print
e printf
verso
un file o un comando di sistema, usando gli operatori ‘>’, ‘>>’,
‘|’, e ‘|&’.
(Vedi la sezione Richiedere input usando getline
,
e Ridirigere l’output di print
e printf
).
[right-value, ossia valore a destra] Un valore che può apparire alla destra
di un operatore di assegnazione.
In awk
, essenzialmente ogni espressione ha un valore.
Ognuno di questi valori è un rvalue.
Un valore singolo, sia numerico che di tipo stringa. Le variabili normali sono scalari; i vettori e le funzioni non lo sono.
La natura degli operatori logici awk
‘&&’ e ‘||’.
Se il valore dell’intera espressione in cui sono contenuti è determinabile
valutando solo una parte iniziale dell’espressione, la parte seguente non è
presa in considerazione.
(Vedi la sezione Espressioni booleane).
awk
Un altro nome per designare un programma awk
.
sed
Si veda “Editore di flusso”.
Il valore iniziale, o il punto di partenza, di una sequenza di numeri casuali.
Una speciale sequenza di caratteri usata per descrivere caratteri non stampabili, come ‘\n’ (ritorno a capo) o ‘\033’ per il carattere ASCII ESC (Escape). (Vedi la sezione Sequenze di protezione).
Il programma che interpreta i comandi nei sistemi Unix e in quelli che rispettano lo standard POSIX. La shell funziona sia interattivamente che come un linguaggio di programmazione, che elabora file sequenziali, detti script di shell.
Una rappresentazione di numeri all’interno del computer che ha una parte
espressa sotto forma di frazione. I numeri a singola precisione hanno meno
cifre significative di quelli a doppia precisione, ma le operazioni relative
richiedono talora meno risorse elaborative da parte del computer.
Questo tipo di numero è quello usato da alcune tra le prime versioni di
awk
per memorizzare valori numerici. Nel linguaggio C, sono numeri
di tipo float
.
Il carattere generato premendo la barra spaziatrice sulla tastiera.
Una sequenza di spazi, TAB, o caratteri di ritorno a capo presenti in un record in input o in una stringa.
Un dato che consiste in una sequenza di caratteri, come ‘Io sono una
stringa’. Le costanti stringa sono scritte tra doppi apici nel linguaggio
awk
e possono contenere sequenze di protezione
(Vedi la sezione Sequenze di protezione).
Una stringa che non contiene alcun carattere. È rappresentabile
esplicitamente nei programmi awk
mettendo due caratteri di
doppio apice uno dietro all’altro (""
). La si può inserire nei dati
in input mettendo due separatori di campo uno dietro all’altro.
Si veda “Stringa nulla”.
Il carattere generato premendo il tasto TAB sulla tastiera. Normalmente può generare sino a otto spazi in output.
Un sistema operativo per computer originalmente sviluppato nei primi anni ’70 presso gli AT&T Bell Laboratories. Inizialmente si diffuse nelle università di tutto il mondo e in seguito si estese agli ambienti del mondo del lavoro come un sistema per lo sviluppo del software e come server di rete. Ci sono parecchie versioni di Unix a pagamento, come pure parecchi sistemi operativi modellati su Unix e il cui codice sorgente è liberamente disponibile. (come GNU/Linux, NetBSD, FreeBSD, e OpenBSD).
L’abbreviazione comune per “Universal Coordinated Time” (tempo coordinato universale). Questa è l’ora standard di Greenwich, (UK), usata come tempo di riferimento per i calcoli relativi a marcature temporali. Si veda anche “Epoca” e “GMT”.
Un nome per designare un valore. In awk
, le variabili possono
essere degli scalari o dei vettori.
Una collezione di stringhe, in formato ‘nome=valore’, che
ogni programma ha a disposizione. Gli utenti in generale assegnano valori
alle variabili d’ambiente per fornire informazioni a vari programmi.
Esempi tipici sono le variabili d’ambiente HOME
e PATH
.
ARGC
,
ARGV
,
CONVFMT
,
ENVIRON
,
FILENAME
,
FNR
,
FS
,
NF
,
NR
,
OFMT
,
OFS
,
ORS
,
RLENGTH
,
RSTART
,
RS
,
e
SUBSEP
sono le variabili con un significato speciale in awk
.
In più,
ARGIND
,
BINMODE
,
ERRNO
,
FIELDWIDTHS
,
FPAT
,
IGNORECASE
,
LINT
,
PROCINFO
,
RT
,
e
TEXTDOMAIN
sono le variabili con un significato speciale in gawk
.
Se i loro valori sono modificati, il contesto di esecuzione di awk
cambia.
(Vedi la sezione Variabili predefinite).
Un raggruppamento di molti valori con uno stesso nome.
La maggior parte dei linguaggi fornisce solo vettori sequenziali.
awk
fornisce vettori associativi.
Un vettore i cui indici possono essere numeri o stringhe, e non solamente interi sequenziali compresi in un intervallo prestabilito.
Successivo: Copia, Precedente: Concetti fondamentali, Su: Top [Contenuti][Indice]