[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] gawk branch, feature/docit, updated. gawk-4.1.0-5027-gf971bf98
From: |
Antonio Giovanni Colombo |
Subject: |
[SCM] gawk branch, feature/docit, updated. gawk-4.1.0-5027-gf971bf98 |
Date: |
Sat, 12 Nov 2022 05:13:21 -0500 (EST) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, feature/docit has been updated
via f971bf9862b8f8c7b8e28613a943bc35c1dfa4d5 (commit)
from ea4424f4a4b31c84c9032e2a59720bd47699bade (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=f971bf9862b8f8c7b8e28613a943bc35c1dfa4d5
commit f971bf9862b8f8c7b8e28613a943bc35c1dfa4d5
Author: Antonio Giovanni Colombo <azc100@gmail.com>
Date: Sat Nov 12 11:12:29 2022 +0100
CSV filds management update
diff --git a/doc/it/ChangeLog b/doc/it/ChangeLog
index fdeb6724..39eeaf17 100755
--- a/doc/it/ChangeLog
+++ b/doc/it/ChangeLog
@@ -1,3 +1,7 @@
+2022-11-12 Antonio Giovanni Colombo <azc100@gmail.com>
+
+ * gawktexi.in: Updated.
+
2022-11-08 Antonio Giovanni Colombo <azc100@gmail.com>
* gawktexi.in: Updated.
diff --git a/doc/it/gawktexi.in b/doc/it/gawktexi.in
index 0ce361b3..17e5a30f 100755
--- a/doc/it/gawktexi.in
+++ b/doc/it/gawktexi.in
@@ -679,6 +679,7 @@ Copyright dell'edizione italiana @copyright{} 2016 -- Free
Software Foundation,
* Separare campi con @dfn{regexp}:: Usare @dfn{regexp} come separatori.
* Campi di un solo carattere:: Fare di ogni carattere un campo
separato.
+* Campi separati da virgola:: Lavorare con file CSV.
* Separatori campo da riga di comando:: Impostare @code{FS} dalla riga di
comando.
* Campo intera riga:: Fare di una riga intera un campo
@@ -3622,7 +3623,7 @@ Questo esempio @`e leggermente diverso da quello
precedente:
l'input @`e l'output del comando @command{expand}, che cambia i TAB
in spazi, in modo che le larghezze confrontate siano quelle che sarebbero
qualora le si stampasse, e non il numero dei caratteri di input su ogni
-riga. [il carattere TAB occupa un byte nel file, ma pu@`o generare fino a
+riga. [Il carattere TAB occupa un byte nel file, ma pu@`o generare fino a
otto spazi bianchi in fase di stampa.]
@item
@@ -3897,7 +3898,7 @@ per programmi sulla riga di comando, @emph{ammesso} che
si stia usando una
shell conforme a POSIX, come la Unix Bourne shell o Bash. Ma la C shell si
comporta in maniera diversa! In quel caso, occorre usare due barre inverse
consecutive, in fondo alla riga. Si noti anche che quando si usa la C shell
-@emph{ogni} andata a capo nel vostro programma @command{awk} deve essere
+@emph{ogni} andata a capo nel vostro programma @command{awk} dev'essere
indicata con una barra inversa. Per esempio:
@example
@@ -6123,7 +6124,7 @@ $ @kbd{awk 'BEGIN @{ print "Egli le disse \"ciao!\"." @}'}
Lo stesso carattere di barra inversa @`e un altro carattere che non pu@`o
essere
incluso normalmente; occorre scrivere @samp{\\} per inserire una barra
inversa nella stringa o @dfn{regexp}. Quindi, la stringa costituita dai due
-caratteri @samp{"} e @samp{\} deve essere scritta come @code{"\"\\"}.
+caratteri @samp{"} e @samp{\} dev'essere scritta come @code{"\"\\"}.
Altre sequenze di protezione rappresentano caratteri non stampabili
come TAB o il ritorno a capo. Anche se @`e possibile immettere la maggior
parte dei
@@ -6537,7 +6538,7 @@ da ricercare @`e @samp{phhhhhhhhhhhhhhooey}, @samp{ph*}
individua tutte le
@cindex pi@`u (@code{+}) @subentry operatore @dfn{regexp}
@item @code{+}
Questo simbolo @`e simile a @samp{*}, tranne per il fatto che l'espressione
-precedente deve essere trovata almeno una volta. Questo significa che
+precedente dev'essere trovata almeno una volta. Questo significa che
@samp{wh+y} individuerebbe @samp{why} e @samp{whhy}, ma non @samp{wy}, mentre
@samp{wh*y} li troverebbe tutti e tre.
@@ -8169,6 +8170,7 @@ in precedenza.
* Separare campi con @dfn{regexp}:: Usare @dfn{regexp} come separatori.
* Campi di un solo carattere:: Fare di ogni carattere un campo
separato.
+* Campi separati da virgola:: Lavorare con file CSV.
* Separatori campo da riga di comando:: Assegnare @code{FS} dalla riga di
comando.
* Campo intera riga:: Far s@`{@dotless{i}} che la riga intera
sia un
@@ -8446,6 +8448,54 @@ In modalit@`a di compatibilit@`a
se @code{FS} @`e la stringa nulla, anche @command{gawk}
si comporta in questo modo.
+@node Campi separati da virgola
+@subsection Lavorare con file CSV
+
+Molti programmi di uso frequente si servono della virgola come separatore
+di campo, invece di usare lo spazio. [Normalmente hanno come suffisso
+"csv", Comma Separated Value, ovvero Campi Separati da Virgola.]
+Questo @`e il caso in particolare per popolari fogli di calcolo.
+Non c'@`e uno standard accettato da tutti che regoli il formato di tali
+file, sebbene il documento
+@uref{http://www.ietf.org/rfc/rfc4180.txt, RFC 4180}
+elenchi le pratiche normalmente seguite.
+
+Per decenni, chi voleva lavorare con file CSV in @command{awk}
+ha dovuto ``trovare da solo'' una soluzione. (Per esempio,
+@pxref{Separazione in base al contenuto}).
+Nel 2013, Brian Kernighan decise di aggiungere un supporto
+iniziale per i file CSV alla sua versione di @command{awk}.
+Per restare allo stesso livello, anche @command{gawk} rende
+disponibile lo stesso supporto presente nella versione di Brian.
+Per usare dei file contenenti campi CSV, basta assegnare alla variabile
+@code{FS} una stringa che contiene solo una virgola,
+cos@`{@dotless{i}}: @samp{FS = ","}.
+
+I campi nei file CSV sono separati da virgola. Per consentire la
+presenza di una virgola all'interno di un campo (p.es. come parte
+di un dato), il campo pu@`o essere racchiuso fra doppi apici.
+Per consentire un doppio apice all'interno di un campo racchiuso fra
+doppi apici, si devono inserire due doppi apici.
+La tabella
+@ref{table-csv-examples} mostra alcuni esempi.
+
+@float Table,table-csv-examples
+@caption{Esempi di dati in file CSV}
+@multitable @columnfractions .3 .3
+@headitem Input @tab Contenuto del campo
+@item @code{abc def} @tab @code{abc def}
+@item @code{"dati tra doppi apici"} @tab @code{dati tra doppi apici}
+@item @code{"dati tra, doppi apici"} @tab @code{dati tra, doppi apici}
+@item @code{"Lei disse ""Basta!""."} @tab @code{Lei disse "Basta!".}
+@item @code{Lei disse "Basta!".} @tab @code{Lei disse "Basta!".}
+@end multitable
+@end float
+
+Il doppio apice che inizia un campo fra doppi apici
+dev'essere il primo carattere dopo la virgola.
+
+Questa funzionalit@`a @`e disabilitata in modalit@`a POSIX.
+
@node Separatori campo da riga di comando
@subsection Impostare @code{FS} dalla riga di comando
@cindex @option{-F} (opzione) sulla riga di comando
@@ -8638,8 +8688,12 @@ di @code{FS} (@samp{==} significa ``@`e uguale a''):
@table @code
@item FS == " "
-I campi sono separati da serie di spazi vuoti. Gli spazi vuoti iniziale e
-finale sono ignorati. Questo @`e il comportamento di default.
+I campi sono separati da uno o pi@`u spazi vuoti. Gli spazi vuoti iniziali
+e finali sono ignorati. Questo @`e il comportamento di default.
+
+@item FS == ","
+I campi sono separati da virgole, con regole speciali per inserire in un
+campo virgole e/o doppi apici.
@item FS == @var{qualsiasi altro carattere singolo}
I campi sono separati da ogni ricorrenza del carattere. Ricorrenze
@@ -8967,10 +9021,10 @@ parole, @code{FS} definisce cosa un campo @emph{non
@`e}, invece di cosa
Tuttavia, ci sono casi in cui effettivamente si ha bisogno di definire i campi
in base a cosa essi sono, e non in base a cosa non sono.
-@cindex dati CSV (valori separati da virgole) @subentry analizzare con
@code{FPAT}
-@cindex CSV (valori separati da virgole) come dati @subentry analizzare con
@code{FPAT}
+@cindex dati CSV (campi separati da virgole) @subentry analizzare con
@code{FPAT}
+@cindex CSV (campi separati da virgole) come dati @subentry analizzare con
@code{FPAT}
@cindex Comma Separated Values (CSV) come dati @subentry analizzare con
@code{FPAT}
-@cindex valori separati da virgole (CSV) come dati @subentry analizzare con
@code{FPAT}
+@cindex campi separati da virgole (CSV) come dati @subentry analizzare con
@code{FPAT}
Il caso pi@`u emblematico @`e quello dei dati cosiddetti @dfn{comma-separated
value} (CSV). Molti fogli elettronici, per esempio, possono esportare i dati
in file di testo, dove ogni record termina con un ritorno a capo e i campi
@@ -9171,9 +9225,9 @@ $ @kbd{gawk -v fpat=2 -f test-csv.awk sample.csv}
@cindex Collado, Manuel
@cindex @code{CSVMODE}, libreria per @command{gawk}
@cindex libreria @subentry @code{CSVMODE} per @command{gawk}
-@cindex dati CSV (valori separati da virgole) @subentry analizzare con
libreria @code{CSVMODE}
-@cindex CSV (valori separati da virgole) come dati @subentry analizzare con
libreria @code{CSVMODE}
-@cindex valori separati da virgole (CSV) come dati @subentry analizzare con
libreria @code{CSVMODE}
+@cindex dati CSV (campi separati da virgole) @subentry analizzare con libreria
@code{CSVMODE}
+@cindex CSV (campi separati da virgole) come dati @subentry analizzare con
libreria @code{CSVMODE}
+@cindex campi separati da virgole (CSV) come dati @subentry analizzare con
libreria @code{CSVMODE}
In generale, usare @code{FPAT} per effettuare l'analisi di dati in formato CSV
@`e come utilizzare un lenzuolo troppo corto. Rimane sempre un angolo che non
@`e coperto. Si raccomanda, in alternativa, di usare la libreria
@code{CSVMODE}
@@ -11385,7 +11439,7 @@ invece di inviarlo a un file. Questa ridirezione apre
una @dfn{pipe} verso
L'argomento @var{comando}, verso cui @`e rivolta la ridirezione, @`e in
realt@`a
un'espressione
@command{awk}. Il suo valore @`e convertito in una stringa il cui contenuto
-costituisce un comando della shell che deve essere eseguito. Per esempio,
+costituisce un comando della shell che dev'essere eseguito. Per esempio,
il seguente programma produce due file, una lista non ordinata di nomi di
persone e una lista ordinata in ordine alfabetico inverso:
@@ -11683,8 +11737,8 @@ per accedere a ogni altro file aperto ereditato:
@table @file
@item /dev/fd/@var{N}
-Il file associato al descrittore di file @var{N}. Il file indicato deve
-essere aperto dal programma che inizia l'esecuzione di @command{awk}
+Il file associato al descrittore di file @var{N}. Il file indicato
+dev'essere aperto dal programma che inizia l'esecuzione di @command{awk}
(tipicamente la shell). Se non sono state poste in essere iniziative
speciali nella shell da cui @command{gawk} @`e stato invocato, solo i
descrittori 0, 1, e 2 sono disponibili.
@@ -11822,9 +11876,10 @@ close("sort -r nomi")
Una volta eseguita questa chiamata di funzione, la successiva @code{getline}
da quel file o comando, o la successiva @code{print} o @code{printf} verso quel
file o comando, riaprono il file o eseguono nuovamente il comando.
-Poich@'e l'espressione da usare per chiudere un file o una @dfn{pipeline} deve
-essere uguale all'espressione usata per aprire il file o eseguire il comando,
-@`e buona norma usare una variabile che contenga il @value{FN} o il comando.
+Poich@'e l'espressione da usare per chiudere un file o una @dfn{pipeline}
+dev'essere uguale all'espressione usata per aprire il file o eseguire il
+comando, @`e buona norma usare una variabile che contenga il valore
+@value{FN} o il comando.
Il precedente esempio cambia come segue:
@example
@@ -20406,6 +20461,12 @@ a inizio stringa viene messo in
@code{@var{separatori}[0]} e ogni
eventuale spazio bianco a fine stringa viene messo in
@code{@var{separatori}[@var{n}]}, dove @var{n} @`e il valore restituito da
@code{split()} (cio@`e il numero di elementi in @var{vettore}).
+Se la variabile @var{fieldsep} @`e una virgola, e @command{gawk} non @`e
+in modalit@`a POSIX, la stringa viene suddivisa usando le regole di
+analisi dei file CSV, come richiesto dal separatore @code{FS}
+(@pxref{Campi separati da virgola}). In questo caso il vettore
@var{separatori}
+non viene riempito, perch@'e consisterebbe solo di elementi contenenti
+solo una virgola.
La funzione @code{split()} divide le stringhe in pezzi nello stesso
modo in cui le righe in input sono divise in campi. Per esempio:
@@ -20428,8 +20489,8 @@ a[3] = "sac"
e imposta il contenuto del vettore @code{separatori} come segue:
@example
-seps[1] = "-"
-seps[2] = "-"
+separatori[1] = "-"
+separatori[2] = "-"
@end example
@noindent
@@ -28425,7 +28486,7 @@ Ci sono due aspetti importanti da considerare qui:
@itemize @bullet
@item
-Si deve essere in grado di generare facilmente tali suffissi e in
+Si dev'essere in grado di generare facilmente tali suffissi e in
particolare di gestire facilmente lo ``scorrimento''; per esempio,
passare da @samp{abz} ad @samp{aca}.
@@ -29729,7 +29790,7 @@ per ogni record:
@c endfile
@end ignore
@c file eg/prog/translate.awk
-# Bug: non gestisce cose del tipo tr A-Z a-z; deve essere
+# Bug: non gestisce cose del tipo tr A-Z a-z; dev'essere
# descritto carattere per carattere.
# Tuttavia, se `a' @`e pi@`u corto di `da',
# l'ultimo carattere in `a' @`e usato per il resto di `da'.
@@ -41008,7 +41069,7 @@ richiede di comprendere il modo con cui tali valori
sono convertiti in stringhe
Come per @emph{tutte} le stringhe passate a @command{gawk} da
un'estensione, la memoria che contiene il valore della stringa con chiave
-@code{index} deve essere stata acquisita utilizzando le funzioni
+@code{index} dev'essere stata acquisita utilizzando le funzioni
@code{gawk_malloc()}, @code{gawk_calloc()} o @code{gawk_realloc()}, e
@command{gawk} rilascer@`a (al momento opportuno) la relativa memoria.
@@ -41306,7 +41367,7 @@ codice di un'estensione:
@itemize @value{BULLET}
@item
-Il vettore appena creato deve essere subito messo nella Tabella dei simboli di
+Il vettore appena creato dev'essere subito messo nella Tabella dei simboli di
@command{gawk}. Solo dopo aver fatto questo @`e possibile aggiungere elementi
al vettore.
@@ -43715,8 +43776,8 @@ un'estensione.
considerata come in sola lettura dall'estensione.
@item
-@emph{Tutta} la memoria passata da un'estensione a @command{gawk} deve
-essere ottenuta dalle funzioni di allocazione della memoria previste
+@emph{Tutta} la memoria passata da un'estensione a @command{gawk}
+dev'essere ottenuta dalle funzioni di allocazione della memoria previste
dall'API. @command{gawk} @`e responsabile per la gestione di quella memoria e
la libera quando @`e il momento per farlo.
@@ -51078,7 +51139,7 @@ termini della sezione 6d.
@end enumerate
Una porzione separabile del codice oggetto, il cui sorgente @`e escluso dal
-Sorgente Corrispondente e trattato come Libreria di Sistema, non deve essere
+Sorgente Corrispondente e trattato come Libreria di Sistema, non dev'essere
obbligatoriamente inclusa nella distribuzione del codice oggetto del
programma.
@@ -51111,7 +51172,7 @@ distribuzione avviene come parte di una transazione
nella quale il diritto di
possesso e di uso del Prodotto Utente viene trasferito al destinatario per
sempre o per un periodo prefissato (indipendentemente da come la transazione
sia caratterizzata), il Sorgente Corrispondente distribuito secondo le
-condizioni di questa sezione deve essere accompagnato dalle Informazioni di
+condizioni di questa sezione dev'essere accompagnato dalle Informazioni di
Installazione. Questa condizione non @`e richiesta se n@`e tu n@`e una terza
parte
ha la possibilit@`a di installare versioni modificate del codice oggetto sul
Prodotto Utente (per esempio, se il programma @`e installato su una ROM)
@@ -51627,7 +51688,7 @@ codificata in un formato le cui specifiche sono
disponibili pubblicamente,
tale che il suo contenuto possa essere modificato in modo semplice con
generici editor di testi o (per immagini composte da pixel) con generici
editor di immagini o (per i disegni) con qualche editor di disegni
-ampiamente diffuso; la copia deve essere adatta al trattamento per la
+ampiamente diffuso; la copia dev'essere adatta al trattamento per la
formattazione o per la conversione in una variet@`a di formati atti alla
successiva formattazione. Una copia fatta in un formato di file, per il
resto trasparente, i cui marcatori o assenza di tali sono stati progettati
-----------------------------------------------------------------------
Summary of changes:
doc/it/ChangeLog | 4 ++
doc/it/gawktexi.in | 119 ++++++++++++++++++++++++++++++++++++++++-------------
2 files changed, 94 insertions(+), 29 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] gawk branch, feature/docit, updated. gawk-4.1.0-5027-gf971bf98,
Antonio Giovanni Colombo <=