gawk-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]