psqlでのみヘッダーをオフにする方法(postgresql)


17

PostgreSQL 9.1.Xを使用しています

私はpsql、ヘッダーなしでフッターを含む結果を印刷するスクリプトを作成しようとしています。

http://www.postgresql.org/docs/9.1/static/app-psql.html

上記の文書から

\pset tuples_only

ヘッダーとフッターの両方をオフにします。そして

\pset footer off

フッターのみをオフにします。

psqlヘッダーをオフにしてフッターをオンのままにする方法はありますか?

シェル/ perl /好きなテキストツールを使用してこの問題を回避する方法はたくさんありますが、ヘッダーの設定ではなくフッターの設定があるのはなぜですか?

id <--this line I don't want
---- <-- this line I don't want either
 1  <-- this line, yes
(1 row) <-- yes, I want it!

Unixを使用していますか?もしそうなら、あなたはヘッド/テール/ grepを/のawk / sedの/百万他のものを使用することができます
Philᵀᴹ

回答:


9

psqlシェルから実行する-t場合、次のオプションを使用できます(タプルのみを印刷)オプション:

$ psql -t -c "SELECT version();"
 PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

psql使用\tヘッダと行数の印刷をオフにします。


7

私の解決策は完全にオフにするのではなく、ヘッダーを破棄することです。

tailクエリ出力を試すことができます:

\o | tail -n +2

では\o、あなたは、この場合のように、ファイルやパイプへの出力をリダイレクトすることができます。この解決策にも欠点があります。少なくとも私の場合、の実行後SELECT [...]、キーを押さない限りプロンプトに戻りません。そして、プロンプトの後に最初の出力行が表示されます。その後、出力をファイルにリダイレクトする場合、問題になることはありません。

PAGER環境変数を適切に設定し、常にページャーを使用すると、この動作を回避できますpsql

$ export PAGER='tail -n +3'

$ psql -U postgres -d test
psql (9.1.4, server 9.1.5)

test=# \pset pager always
Pager is always used.

test=# select * from a;
  2 | b
  3 | b
(2 rows)

psqlPostgreSQL 9.2に付属するバージョンでは\setenv、便宜上コマンドを使用できます(他のアプリケーションにも影響する可能性のあるenv変数を設定する必要はありません)。


素敵なハック、知っておくと便利なポケットベルオプション。しかし、実際にはヘッダー自体のオプションはありませんか?たぶん私はpostgresqlのメーリストをチェックする必要があります
-skong

@sinbadblueいいえ。すでに確認したとおり、いいえ。ただし、機能のリクエストを投稿することができます:)役に立つ進歩でしょう。
-dezso

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.