2013-08-29 14 views
5

ho esportato alcuni dati da un database PostgreSQL usando (tutto) l'istruzione (s) ha postato qui: Save PL/pgSQL output from PostgreSQL to a CSV filePostgreSQL: export CSV con linebreaks sfuggiti

Ma alcuni campi esportati contiene ritorno a capo (interruzioni di linea), quindi ho ottenuto un CSV di file come:

header1;header2;header3 
foobar;some value;other value 
just another value;f*** value;value with 
newline 
nextvalue;nextvalue2;nextvalue3 

Come posso sfuggire (o ignorare) theese carattere di fine riga (s)?

risposta

5

Le interruzioni di riga sono supportate in CSV se i campi che li contengono sono racchiusi tra virgolette.

Quindi, se si ha questo nel bel mezzo del file:

 
just another value;f*** value;"value with 
newline" 

sarà preso come 1 linea di diffusione dei dati su 2 linee con 3 campi e solo di lavoro.

D'altra parte, senza virgolette, è un file CSV non valido (quando pubblicizza 3 campi).

Sebbene non esistano specifiche formali per il formato CSV, è possibile consultare RFC 4180 per le regole generalmente applicabili.

+1

Grazie. Hai ragione. Il problema non era l'esportazione CSV ma l'importazione in Excel. Usando libreoffice il file può essere importato. – t777