[pgsql-jp: 28394] psql の -F オプション・・・

Hajime Lucky Okada paraiso @ luckyo.8m.com
2002年 12月 20日 (金) 12:40:11 JST


こんにちは、岡田と申します。

表題の通り、特定のテーブルの特定のフィールドだけをタブ・デリミタで
「簡単」に出力したく、外部(スクリプト)から psql コマンド一行で
済まそうとしました。 が、ちょつとおしい所で想定外の動きをします。
間違っているところがあればご教授下さい。

(適当ですが)オリジナルのデータは
prince$ psql -c "select * from aaa" pcsdb
 id |   content
----+-------------
    | XX'XX
  4 | ぽよよん
  5 | %test
  6 | どかーん
  7 | te%st
  8 | だめ〜'〜ん
  9 | _どこ\どこ
(7 rows)

これを psql のシェルで pcsdb=# \a \t \pset fieldsep '\t' をセットした時の
出力を想定して、、

prince$ psql -F '\t' -Atc "select * from aaa" pcsdb  とすると・・・
\tXX'XX
4\tぽよよん
5\t%test
6\tどかーん
7\tte%st
8\tだめ〜'〜ん
9\t_どこ\どこ

'\t' のところを "\t" にしても同じ。本当のタブ文字を入れて何とか期待した結果を
得られるのですが、これは「そういう」仕様なんでしょぅか?
私のやり方ってダメですか?

なお、本来は、* の所を好きなフィールドを指定して好きなカラムだけの
CSVを取りたい、というのが私の究極?の狙いです。

宜しくお願い致します。
岡田はじめ





pgsql-jp メーリングリストの案内