Yalnızca psql'de (postgresql) başlık nasıl kapatılır


18

PostgreSQL 9.1.X kullanıyorum

psqlBir üstbilgi olmadan ancak bir altbilgi de dahil olmak üzere sonuçları yazdırmak için komut dosyası oluşturmaya çalışıyorum .

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

Yukarıdaki belgeden

\pset tuples_only

hem üstbilgiyi hem de altbilgiyi kapatır. ve

\pset footer off

yalnızca altbilgiyi kapatır.

psqlÜstbilgiyi kapatmanın ve altbilgiyi açık tutmanın bir yolu var mı ?

Kabuk / perl / istediğiniz metin aracını kullanarak bu soruna geçici bir çözüm bulmak için birçok yol olduğunu biliyorum, ancak altbilgi için bir yapılandırma var ama üstbilgi için bir neden merak ediyorum?

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'te misin? Eğer öyleyse, head / tail / grep / awk / sed / a milyon diğer şeyleri kullanabilirsiniz
Philᵀᴹ

Yanıtlar:


10

Yürütürken psqlkabuğundan kullanabileceğiniz -tseçeneği (baskılar 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

İçinde psqlkullanım \tbaşlık ve satır sayısı baskı kapatmak için.


7

Benim çözümüm tamamen kapanmak değil, başlıkları atmak.

tailSorgu çıktısını deneyebilirsiniz :

\o | tail -n +2

İle \o, bu durumda olduğu gibi çıktıyı bir dosyaya veya boruya yönlendirebilirsiniz. Bu çözümün de kusuru var: en azından benim durumumda, yürütüldükten sonra SELECT [...], bir tuşa basmadıkça bir isteme geri dönmem. Ve ilk çıktı satırı bir komut isteminden sonra görünür. Daha sonra çıktıyı bir dosyaya yönlendirirseniz sorun olmamalıdır.

PAGEROrtam değişkenini uygun şekilde ayarlarsanız ve her zaman çağrı cihazı kullanırsanız bu davranış önlenebilir 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)

In psqlPostgreSQL 9.2 ile birlikte gelen sürümü kullanabilirsiniz \setenvkolaylık komutu (Ben de diğer uygulamaları etkileyebilir bir env değişkeni ayarlamak gerekmez anlamına).


güzel kesmek, çağrı cihazı seçeneği bilmek iyi. ancak gerçekten başlığın kendisi için bir seçenek yok mu? Belki de postgresql'in
postacısını

Daha önce kontrol ettiğiniz gibi, hayır. Yine de bir özellik isteği gönderebilirsiniz :) Yararlı bir ilerleme olacaktır.
dezso

5

Bir psql komut satırı seçeneği eklemeniz gerekir -P "footer=off". Bu seçenek, sonuçta sütun başlıklarını tutar.


Soruyu okuyun.
Colin 't Hart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.