erlug
[Top] [All Lists]

Re: [Erlug] ancora bash scripting

To: Eagleone <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] ancora bash scripting
From: Paolo Sinigaglia <Sini@xxxxxxxxxxxx>
Date: Sun, 3 Oct 2004 10:47:50 +0200
Hello Eagleone,

Sunday, October 3, 2004, 4:54:40 AM, you wrote:

E> Il mio problema è questo: ho un file csv proveniente da un dump di un
[...]
E> Me ne resta solo uno: alcune tuple del db contengono campi text su più
E> righe e questo fa impazzire csv2sql.

E> Nel file csv ci sono quindi delle righe con meno di n-1 ";" (ossia
E> delle tuple su più righe. Per fortuna l'ultima colonna del db è sempre
E> senza testo a capo)

La prima risposta e' che quel file NON e' csv. I <cr> all'interno dei campi
dovrebbero essere escapati, proprio per evitare il tuo tipo di problema.
Fammi indovinare, il "database" in questione e' access (o peggio ancora excel)?

E> Mediante script vorrei per lo meno individuare queste righe e magari
E> correggerle automaticamente.

E' tutto meno che banale: limitarsi a contare i ";" contenuti nelle righe puo'
essere fuorviante, visto che possono esserci dei ; anche all'interno di campi,
purche' delimitati da "".
Potresti tentare di parsare il csv e contare i campi ma, quando c'ew' un campo
che contiene un <cr> questo sara' delimitato solo da una parte e non dall'altra
e il parser te lo segnalera' come errore.

Temo che non esistano soluzioni semplici, la cosa migliore e' scriversi un
convertitore M$csv->csv che elimini tutte le schifezze non standard: non ho
esperienza personale con i "csv" generati da access, ma purtroppo ho avuto piu'
volte a che fare con quelli prodotti da excel ed e' un delirio, basti dire che
in certi casi excel NON e' in grado di rileggere i file "csv" che ha generato!

aps
________________________PS

mailto:Sini@xxxxxxxxxxxx


<Prev in Thread] Current Thread [Next in Thread>