Many thanks, Greg! I got it to work by emulating what you wrote. But I think you meant -A, not -At below. >> psql -c "select name,setting from pg_settings limit 1" -d postgres -At >> -F $'\t' Regards, Tena Sakai tsakai@xxxxxxxxxxxxxx On 5/31/10 8:07 PM, "Greg Smith" <greg@xxxxxxxxxxxxxxx> wrote: > 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. -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin