J'utilise PostgreSQL 9.1.X
J'essaie de créer un script psql
pour imprimer les résultats sans en-tête mais avec un pied de page.
http://www.postgresql.org/docs/9.1/static/app-psql.html
Extrait du document ci-dessus
\pset tuples_only
désactivera l'en-tête et le pied de page. et
\pset footer off
désactivera le pied de page uniquement.
Existe-t-il un moyen dans psql
pour désactiver l'en-tête et conserver le pied de page?
Je sais qu'il existe de nombreuses façons de contourner ce problème en utilisant Shell/Perl/quel que soit l'outil de texte que vous aimez, mais je me demande pourquoi il y a une configuration pour le pied de page mais pas pour l'en-tête?
id <--this line I don't want
---- <-- this line I don't want either
1 <-- this line, yes
(1 row) <-- yes, I want it!
Lors de l'exécution de psql
à partir de Shell, vous pouvez utiliser -t
(imprime uniquement les tuples):
$ 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
Dans psql
utilisez \t
pour désactiver l'impression du nombre d'en-têtes et de lignes.
Ma solution n'est pas tout à fait de désactiver, mais plutôt de supprimer les en-têtes.
Vous pouvez essayer de tail
la sortie de la requête:
\o | tail -n +2
Avec \o
, vous pouvez rediriger la sortie vers un fichier ou un canal, comme dans ce cas. Cette solution a aussi son défaut: au moins dans mon cas, après l'exécution de SELECT [...]
, Je ne reviens à une invite que si j'appuie sur une touche. Et la première ligne de sortie apparaît après une invite. Si vous redirigez ensuite la sortie vers un fichier, cela ne devrait pas poser de problème.
Ce comportement peut être évité si vous définissez la variable d'environnement PAGER
de manière appropriée et utilisez toujours pager is 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)
Dans la version psql
fournie avec PostgreSQL 9.2, vous pouvez utiliser le \setenv
commande pour plus de commodité (je veux dire que vous n'avez pas à définir une variable env qui peut également affecter d'autres applications).
Vous devez ajouter une option de ligne de commande psql -P "footer=off"
. Cette option conserve les titres des colonnes dans le résultat.