Thread: Controlling psql output

Controlling psql output

From
"Gauthier, Dave"
Date:

Hi:

 

Using a single psql command to generate stdout in linux that will be redirected to a file.  Many rows with 1 column are returned.  I want no header, no footer, no blank lines at the top or bottom, no initial space before each record.  This is what I’m trying...

 

psql –P tuples_only=on,footer=off,border=0 mydb

 

This gets rid of the header and footer OK.  But there is still a blank line as the first line in stdout.  Also, each record has a preceding space before the column value.

 

Is there a way to do what I want?

 

-dave

Re: Controlling psql output

From
"Joshua D. Drake"
Date:
On Fri, 2009-05-08 at 09:51 -0700, Gauthier, Dave wrote:
> Hi:
>
>
>
> Using a single psql command to generate stdout in linux that will be
> redirected to a file.  Many rows with 1 column are returned.  I want
> no header, no footer, no blank lines at the top or bottom, no initial
> space before each record.  This is what I’m trying...
>
>
>
> psql –P tuples_only=on,footer=off,border=0 mydb

psql -A -t

jd@jd-laptop:~$ psql -A -t -U postgres -c "select * from bool_test"
f
jd@jd-laptop:~$

Sincerely,

Joshua D. Drake

>
>
--
PostgreSQL - XMPP: jdrake@jabber.postgresql.org
   Consulting, Development, Support, Training
   503-667-4564 - http://www.commandprompt.com/
   The PostgreSQL Company, serving since 1997


Re: Controlling psql output

From
Christophe
Date:

On May 8, 2009, at 9:51 AM, Gauthier, Dave wrote:
This gets rid of the header and footer OK.  But there is still a blank line as the first line in stdout.  Also, each record has a preceding space before the column value.
 
Is there a way to do what I want?

sed?

Re: Controlling psql output

From
Ben Chobot
Date:
On Fri, 8 May 2009, Gauthier, Dave wrote:

> Hi:
>
> Using a single psql command to generate stdout in linux that will be redirected to a file.  Many rows with 1 column
arereturned.  I want no header, no footer, no blank lines at the top or bottom, no initial space before each record.
Thisis what I'm trying... 
>
> psql -P tuples_only=on,footer=off,border=0 mydb
>
> This gets rid of the header and footer OK.  But there is still a blank line as the first line in stdout.  Also, each
recordhas a preceding space before the column value. 
>
> Is there a way to do what I want?

Do you need to have the rows aligned? The -A flag may work for you, though
you might want to specify a different column seperator.



Re: Controlling psql output

From
"Gauthier, Dave"
Date:
-A -t worked great.  Thanks !
-dave

-----Original Message-----
From: Ben Chobot [mailto:bench@silentmedia.com]
Sent: Friday, May 08, 2009 2:03 PM
To: Gauthier, Dave
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] Controlling psql output

On Fri, 8 May 2009, Gauthier, Dave wrote:

> Hi:
>
> Using a single psql command to generate stdout in linux that will be redirected to a file.  Many rows with 1 column
arereturned.  I want no header, no footer, no blank lines at the top or bottom, no initial space before each record.
Thisis what I'm trying... 
>
> psql -P tuples_only=on,footer=off,border=0 mydb
>
> This gets rid of the header and footer OK.  But there is still a blank line as the first line in stdout.  Also, each
recordhas a preceding space before the column value. 
>
> Is there a way to do what I want?

Do you need to have the rows aligned? The -A flag may work for you, though
you might want to specify a different column seperator.



Re: Controlling psql output

From
Jasen Betts
Date:
On 2009-05-08, Gauthier, Dave <dave.gauthier@intel.com> wrote:
> --_000_482E80323A35A54498B8B70FF2B87980040106E94Bazsmsx504amrc_
> Content-Type: text/plain; charset="us-ascii"
> Content-Transfer-Encoding: quoted-printable
>
> Hi:
>
> Using a single psql command to generate stdout in linux that will be redire=
> cted to a file.  Many rows with 1 column are returned.  I want no header, n=
> o footer, no blank lines at the top or bottom, no initial space before each=
>  record.  This is what I'm trying...
>
> psql -P tuples_only=3Don,footer=3Doff,border=3D0 mydb
>
> This gets rid of the header and footer OK.  But there is still a blank line=
>  as the first line in stdout.  Also, each record has a preceding space befo=
> re the column value.
>
> Is there a way to do what I want?

use "copy (select ...) to stdout" instead of "select ..."

requires 8.3 or greater.
as a bonus nulls and control characters re represented unambiguously.