erlug
[Top] [All Lists]

Re: [Erlug] ancora bash scripting

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] ancora bash scripting
From: Eagleone <andrea.scavolini@xxxxxxxxx>
Date: Sun, 3 Oct 2004 15:39:30 +0200
On Sun, 3 Oct 2004 10:47:50 +0200, Paolo Sinigaglia <sini@xxxxxxxxxxxx> wrote:
> 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)?

No è peggio!!! E' un bel database Oracle... Solo che me lo passano
solo attraverso prodottazzi M$ e alla fine ottengo quello schifo.

> 
> 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 "".

Be questo è ovvio. Ma una volta presa una riga il controllo non è difficile.

> 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!

Più che usare dos2unix non saprei che fare.

Rimane da dire solo una cosa...

Kill Bill

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