Jak wyłączyć nagłówek tylko w psql (postgresql)


18

Używam PostgreSQL 9.1.X

Próbuję zbudować psqlskrypt do drukowania wyników bez nagłówka, ale ze stopką.

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

Z powyższego dokumentu

\pset tuples_only

wyłączy zarówno nagłówek, jak i stopkę. i

\pset footer off

wyłączy tylko stopkę.

Czy istnieje sposób psqlna wyłączenie nagłówka i utrzymanie stopki?

Wiem, że istnieje wiele sposobów obejścia tego problemu za pomocą powłoki / perla / dowolnego narzędzia tekstowego, które Ci się podoba, ale zastanawiam się, dlaczego istnieje konfiguracja stopki, ale nie jedna dla nagłówka?

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

Czy jesteś na Uniksie? Jeśli tak, możesz użyć head / tail / grep / awk / sed / a milion innych rzeczy
Philᵀᴹ

Odpowiedzi:


10

Podczas wykonywania psqlz powłoki możesz użyć opcji -t(drukuje tylko krotki):

$ 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

W psqlużyciu \tmożna wyłączyć drukowanie nagłówka i liczby wierszy.


7

Moje rozwiązanie nie całkiem się wyłącza, ale raczej odrzucam nagłówki.

Możesz spróbować uzyskać tailwynik zapytania:

\o | tail -n +2

Za pomocą \omożesz przekierować dane wyjściowe do pliku lub potoku, jak w tym przypadku. To rozwiązanie ma również swoją wadę: przynajmniej w moim przypadku po wykonaniu SELECT [...]nie wracam do monitu, chyba że nacisnę klawisz. Pierwszy wiersz wyjściowy pojawia się po monicie. Jeśli następnie przekierujesz dane wyjściowe do pliku, nie powinno to stanowić problemu.

Zachowania tego można uniknąć, jeśli odpowiednio ustawisz PAGERzmienną środowiskową i zawsze używasz pagera 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)

W psqlwersji dostarczanej z PostgreSQL 9.2 możesz użyć tego \setenvpolecenia dla wygody (to znaczy, że nie musisz ustawiać zmiennej env, która może wpływać również na inne aplikacje).


niezły hack, dobra opcja pager. ale tak naprawdę nie ma opcji dla samego nagłówka? Może powinienem sprawdzić pocztę postgresql
skong

@ sinbadblue Nie. Jak już sprawdziłeś, nie. Możesz opublikować prośbę o dodanie funkcji :) Byłoby to przydatne ulepszenie.
dezso

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.