शीर्ष लेख को केवल psql में कैसे बंद करें (postgresql)


18

मैं PostgreSQL 9.1.X का उपयोग कर रहा हूं

मैं psqlएक हेडर के बिना लेकिन एक पाद लेख सहित परिणामों को मुद्रित करने के लिए स्क्रिप्ट बनाने की कोशिश कर रहा हूं ।

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

उपरोक्त दस्तावेज़ से

\pset tuples_only

हेडर और फुटर दोनों को बंद कर देगा। तथा

\pset footer off

केवल पाद बंद कर देगा।

क्या psqlहेडर को बंद करने और फूटर को चालू रखने का कोई तरीका है ?

मुझे पता है कि शेल / पर्ल / जो भी टेक्स्ट टूल आपको पसंद है, उसका उपयोग करते हुए इस मुद्दे के आसपास काम करने के कई तरीके हैं, हालांकि मैं सोच रहा हूं कि पाद लेख के लिए एक कॉन्फ़िगरेशन क्यों है, लेकिन हेडर के लिए एक नहीं?

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

क्या आप यूनिक्स पर हैं? यदि ऐसा है, तो आप सिर / पूंछ / grep / awk / sed / एक लाख अन्य चीजों का उपयोग कर सकते हैं
Phil

जवाबों:


10

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सुविधा के लिए कमांड का उपयोग कर सकते हैं (मेरा मतलब है कि आपको एक एनवी चर सेट करने की आवश्यकता नहीं है जो अन्य अनुप्रयोगों को भी प्रभावित कर सकती है)।


अच्छा हैक, पेजर विकल्प जानने के लिए अच्छा है। लेकिन क्या वास्तव में हेडर के लिए कोई विकल्प नहीं है? हो सकता है कि मुझे
स्कोंग

@sinbadblue No. जैसा कि आप पहले ही जाँच चुके हैं, नहीं। आप एक सुविधा अनुरोध पोस्ट कर सकते हैं, हालांकि :) एक उपयोगी उन्नति होगी।
dezso

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.