From: | Jeff Eckermann <jeckermann(at)verio(dot)net> |
---|---|
To: | "'Andrew Gould'" <andrewgould(at)yahoo(dot)com>, Postgres Mailing List <pgsql-general(at)postgresql(dot)org> |
Subject: | RE: Off topic? - Solution for a delimiter problem |
Date: | 2000-12-21 14:51:39 |
Message-ID: | 08CD1781F85AD4118E0800A0C9B8580B094855@NEZU |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Isn't this overkill?
Something like:
sed -e 's/\" \"/^I/g' -e 's/\"//g' <file>
would do the job nicely. I'm sure people on this list can suggest even
simpler ways (note: the "^I", or tab character, in the example is created by
typing Ctrl-V then Ctrl-I).
Sed has been (and is) my friend for many such cases.
> -----Original Message-----
> From: Andrew Gould [SMTP:andrewgould(at)yahoo(dot)com]
> Sent: Wednesday, December 20, 2000 5:58 PM
> To: Postgres Mailing List
> Subject: Re: [GENERAL] Off topic? - Solution for a delimiter problem
>
> If space was used as the delimiter without accounting
> for the quotation marks, text fields might be broken
> apart whenever a space occurred. For example, the
> street address "123 Sesame Street" might be split into
> 3 fields containing '"123', 'Sesame' and 'Street"'
> respectively. In the past, I imported the file into
> MySQL, then exported the data into a tab delimited
> text file for importing into PostgreSQL.
>
> The Python script saves many steps; so I was offering
> it up for use and improvement by others. I didn't
> know if I should post the script to the mailing list
> or send it directly to people who are interested.
> (It's only 1k.)
>
> Andrew Gould
>
> --- "Poul L. Christiansen" <poulc(at)cs(dot)auc(dot)dk> wrote:
> > Maybe you can specify the delimiter to be space.
> >
> > radius=# \h copy
> > Command: COPY
> > Description: Copies data between files and tables
> > Syntax:
> > COPY [ BINARY ] table [ WITH OIDS ]
> > FROM { 'filename' | stdin }
> > [ [USING] DELIMITERS 'delimiter' ]
> > [ WITH NULL AS 'null string' ]
> > COPY [ BINARY ] table [ WITH OIDS ]
> > TO { 'filename' | stdout }
> > [ [USING] DELIMITERS 'delimiter' ]
> > [ WITH NULL AS 'null string' ]
> >
> > That would probably be COPY table FROM filename
> > USING DELIMITERS ' ';
> >
> > HTH,
> > Poul L. Christiansen
> >
> > Andrew Gould wrote:
> >
> > > I receive space delimited files that have spaces
> > > within double quoted text fields.
> > >
> > > Since PostgreSQL's COPY doesn't deal with multiple
> > > delimiters, I've written a crude Python script to
> > > convert the files to a tab delimited format
> > without
> > > the double quotes and without disturbing the
> > spaces
> > > within text fields. I'm sure someone could make
> > it
> > > more efficient. (Probably by rewriting it in
> > Perl.)
> > >
> > > Does anyone else need the script? Is the script
> > > something I can/should post?
> > >
> > > Andrew Gould
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Shopping - Thousands of Stores. Millions of Products.
> http://shopping.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | fabrizio.ermini | 2000-12-21 15:07:43 | Could somebody EXPLAIN? :-) |
Previous Message | Martijn van Oosterhout | 2000-12-21 11:18:55 | Re: Best way to replicate a DB between two servers (master/slave) |