Ich verwende PostgreSQL 9.1.X
Ich versuche, ein psql
Skript zu erstellen , um Ergebnisse ohne Kopfzeile, aber mit Fußzeile zu drucken.
http://www.postgresql.org/docs/9.1/static/app-psql.html
Aus dem obigen Dokument
\pset tuples_only
schaltet sowohl die Kopf- als auch die Fußzeile aus. und
\pset footer off
Schaltet nur die Fußzeile aus.
Gibt es eine Möglichkeit psql
, die Kopfzeile auszuschalten und die Fußzeile aktiviert zu lassen?
Ich weiß, dass es viele Möglichkeiten gibt, um dieses Problem mit Shell / Perl / einem beliebigen Textwerkzeug zu umgehen. Ich frage mich jedoch, warum es eine Konfiguration für die Fußzeile gibt, aber keine für die Kopfzeile?
id <--this line I don't want
---- <-- this line I don't want either
1 <-- this line, yes
(1 row) <-- yes, I want it!
postgresql
psql
Skong
quelle
quelle
Antworten:
Wenn Sie
psql
von der Shell aus ausführen , können Sie die-t
Option (druckt nur Tupel) verwenden:Im
psql
Gebrauch\t
auszuschalten Zählung Druck Kopf- und Zeile.quelle
Meine Lösung ist nicht ganz auszuschalten, sondern Header zu verwerfen.
Sie können versuchen,
tail
die Abfrage auszugeben:Mit
\o
können Sie die Ausgabe in eine Datei oder eine Pipe umleiten, wie in diesem Fall. Auch diese Lösung hat einen Fehler: Zumindest in meinem FallSELECT [...]
komme ich nach der Ausführung von nicht zu einer Eingabeaufforderung zurück, es sei denn, ich drücke eine Taste. Nach einer Eingabeaufforderung wird die erste Ausgabezeile angezeigt. Wenn Sie dann die Ausgabe in eine Datei umleiten, sollte dies jedoch kein Problem sein.Dieses Verhalten kann vermieden werden, wenn Sie die
PAGER
Umgebungsvariable entsprechend festlegen und immer den folgenden Pager verwendenpsql
:In der
psql
Version, die mit PostgreSQL 9.2 geliefert wird, können Sie den\setenv
Befehl zur Vereinfachung verwenden (ich meine, Sie müssen keine env-Variable festlegen, die sich auch auf andere Anwendungen auswirken kann).quelle
Sie müssen eine psql-Befehlszeilenoption hinzufügen
-P "footer=off"
. Diese Option behält die Spaltentitel im Ergebnis.quelle