RE: Considerar '' como nulo en carga de datos desde csv

From: Jorge Tornero <jorge(dot)tornero(at)cd(dot)ieo(dot)es>
To: Postgresql-es Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Considerar '' como nulo en carga de datos desde csv
Date: 2011-02-02 07:23:08
Message-ID: 1296631388.17134.10.camel@linux-lqqb.site
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos,

me di cuenta de que no quieres trabajar con la doble comilla
sino con la
comilla simple o apóstrofo. Es más o menos lo mismo, pero he
repasado
las órdenes y serían:

tr -d \' <entrada.csv >salida.csv

y en el caso de sed, ojo porque tienes dos posibilidades:

a) Eliminar sólo los casos que a ti te interesarían (es decir,
cuando
aparece un nulo que serían dos comillas simples juntas (''):

sed s/\'\'//g entrada.csv >salida.csv

b) o eliminar todas las comillas simples del texto (equivalente
al tr):

sed s/\'//g entrada.csv >salida.csv

Un saludo


El mar, 01-02-2011 a las 22:28 +0100, Jorge Tornero escribió:
> Hola Rodrigo y resto del personal,
>
> lo que tú quieres hacer, bajo mi punto de vista, está pidiendo
a
> gritos sed y/o tr (doy por supuesto que trabajas en
GNU/linux). Yo
> tenía un problema similar con csv en los que el separador
decimal era
> la coma y lo tenía que cambiar a punto y con la orden sed o tr
> apropiada un fichero de 60MB con 350000 registros se lo
merienda en
> cosa de 0.7 segundos (de veras). Además, te da igual que en
los campos
> de texto no haya comillas, postgresql te los importa igual, de
manera
> que puedes seguir con el copy (más sencillo, simplemente \copy
data
> from 'mifichero.csv' with delimiter ';' csv header (o con el
comando
> COPY, lo que ocurre es que yo uso \copy en psql para evitar
rollos de
> permisos en directorios, etc...)
>
> Con sed:
>
> sed 's/\"//g' <ficheroentrada >ficherosalida
>
> y con tr:
>
> tr -d \" <ficheroentrada >ficherosalida
>
> (revísalos porque son de medio memorieta)
>
> El resultado es espectacular de veras. Adicionalmente, si
trabajas en
> KDE (no sé si Gnome lo permite), te puedes hacer un
servicemenu de
> manera que sólo tendrías que darle al botón derecho del ratón
y
> seleccionar del menú contextual tu acción (eliminar comillas o
algo
> así, a tu gusto) de manera que te sería todo mucho más
sencillo. Es
> más, en tu propio script para el servicemenu puedes incluir la
llamada
> a psql con el comando \copy y ya te haría la importación del
tirón.
> Pero eso es otra historia...
>
> Un saludo, pruébalo y ya nos cuentas.
>
> Jorge Tornero
> Centro Oceanográfico de Cádiz
> Instituto Español de Oceanografía
> Muelle de Levante, s/n
> Puerto Pesquero - Cadiz
>


--
-----------------------------------------
Jorge Tornero Núñez
Centro Oceanográfico de Cádiz
Instituto Español de Oceanografía
Puerto Pesquero - Muelle de Levante, s/n
11006 Cádiz - España
Tel. +34 956294189
Fax. +34 956294232
www.ieo.es

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Milton Labanda 2011-02-02 14:58:11 Como ver los OIDs en laversion 8.4 o +
Previous Message Jorge Tornero 2011-02-01 21:28:42 RE: Considerar '' como nulo en carga de datos desde csv