Re: truncate data before importing - Mailing list pgsql-novice

From Hans Ginzel
Subject Re: truncate data before importing
Date
Msg-id 20151118153615.GA49172@artax.karlin.mff.cuni.cz
Whole thread Raw
In response to truncate data before importing  (Shmagi Kavtaradze <kavtaradze.s@gmail.com>)
Responses Re: truncate data before importing  (Shmagi Kavtaradze <kavtaradze.s@gmail.com>)
List pgsql-novice
On Wed, Nov 18, 2015 at 01:49:35PM +0100, Shmagi Kavtaradze wrote:
>   I am importing sentences from txt file. They look like:
>   "0,170     A       recent  statistical     analysis        by      David
>   Barton  graphically     illustrates     how     America         has
>   plummeted       from    righteous       living  ,       prosperity
>   and     success         in      the     last    quarter         century
>        .
>   Each Sentence starts with coordinates and each word is delimited with tab.
>   I want to import data to tables without coordinates, just text and if
>   possible to convert tab delimited space with just 'space', not to have
>   such a gap between words. Any solutions how to do it? maybe with shell
>   script?

You can use the 'PROGRAM' in COPY syntax
http://www.postgresql.org/docs/current/static/sql-copy.html

-- DROP TABLE IF EXISTS Sentence;
CREATE TABLE IF NOT EXISTS Sentence (s text);
COPY Sentence
FROM PROGRAM 'sed -re ''s/\t/ /g; s/^\S+\s+//'' file.txt'
WITH (FORMAT text, NULL '');

Take care of escape sequences – backslashes in the file.

If the file is on the client side see the \copy command of psql client instaed.
http://www.postgresql.org/docs/9.4/static/app-psql.html#APP-PSQL-META-COMMANDS-COPY

https://www.gnu.org/software/sed/manual/sed.html

H.



pgsql-novice by date:

Previous
From: Shmagi Kavtaradze
Date:
Subject: truncate data before importing
Next
From: Shmagi Kavtaradze
Date:
Subject: Re: truncate data before importing