Re: What is field separator?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tena Sakai wrote:
  $ echo "select marker, p, afreq from gallo.fbat_sdsdecode limit 10" | \
 > psql -P 'format=unaligned' -P 'fieldsep=\t' -t -f - musket
What's denoted as \t is not a tab character.  It is a two character
sequence backslash followd by a t.  I have tried all other possibilities
such as \\t , "\t", etc that I can think of, but I cannot get an honest to
god tab character to appear as field separator.

Yeah, that's a tough one. In bash you can use ANSI C quoting to pull this off:

psql -c "select name,setting from pg_settings limit 1" -d postgres -At -F $'\t'

See http://wiki.bash-hackers.org/syntax/quoting for more information. Portability to other shells I'm not sure about.

Note that I did two other things a little differently than your example, as well as tightening up the abbreviations:

-Putting the command in -c " " is just better all around than piping into psql using echo. It even works with multi-line input, i.e.:

psql -c "
select 1
"

-Explicitly specifying the database manually using -d makes what's happening easier to follow than expecting people to know the convention that the first non-option passed to psql is a database name.

--
Greg Smith  2ndQuadrant US  Baltimore, MD
PostgreSQL Training, Services and Support
greg@xxxxxxxxxxxxxxx   www.2ndQuadrant.us


--
Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux