2012-03-29 14 views
36

में परिणाम सेट सजावट को छिपाने के लिए कैसे करें आप psql से आउटपुट में कॉलम नाम और पंक्ति गणना कैसे छिपाते हैं?Psql आउटपुट

मैं के साथ एक SQL क्वेरी चल रहा हूँ psql के माध्यम से:

psql --user=myuser -d mydb --output=result.txt -c "SELECT * FROM mytable;" 

और मैं की तरह उत्पादन की उम्मीद कर रहा हूँ:

1,abc 
2,def 
3,xyz 

लेकिन इसके बजाय मैं:

id,text 
------- 
1,abc 
2,def 
3,xyz 
(3 rows) 
के

बेशक, तथ्य के बाद शीर्ष दो पंक्तियों और नीचे पंक्ति को फ़िल्टर करना असंभव नहीं है, लेकिन यह केवल psql के साथ ऐसा करने का एक तरीका है? अपने मैनपेज पर पढ़ना, मैं फील्ड डेलीमीटर को नियंत्रित करने के लिए विकल्प देखता हूं, लेकिन बाहरी आउटपुट को छिपाने के लिए कुछ भी नहीं।

psql --user=myuser -d mydb --output=result.txt -t -c "SELECT * FROM mytable;"

संपादित (एक वर्ष से अधिक बाद में) जोड़ने के लिए:

तुम भी the COPY command की जाँच करने के लिए चाहते हो सकता है

उत्तर

42

आप -t या --tuples-only विकल्प का उपयोग कर सकते हैं । मैं अब के साथ परीक्षण करने के लिए आसान किसी भी PostgreSQL उदाहरणों है, लेकिन मुझे लगता है कि आप इन पंक्तियों के साथ कुछ लिख सकते हैं:

psql --user=myuser -d mydb -c "COPY mytable TO 'result.txt' DELIMITER ','"

(कि result.txt को छोड़कर एक निरपेक्ष पथ होने की आवश्यकता होगी)। COPY कमांड भी एक अधिक बुद्धिमान सीएसवी प्रारूप का समर्थन करता है; its documentation देखें।

+16

वैकल्पिक रूप से, अगर आप शीर्ष लेख नहीं बल्कि पंक्ति गिनती पाद लेख, साथ --pset = psql चलाना चाहते हैं "पाद लेख = बंद" –

+1

'COPY' वास्तव में हो सकता है वैध विकल्प, लेकिन फ़ाइल सर्वर पर समाप्त हो जाएगी, न कि मशीन पर जहां psql चलाया जाता है ... – fvu

+0

@fvu: अच्छा बिंदु। मैं आमतौर पर सर्वर पर 'psql' * भाग गया, इसलिए मेरे लिए यह कोई मुद्दा नहीं था। । । – ruakh

15

आप psql के भीतर से आउटपुट को रीडायरेक्ट कर सकते हैं और उसी विकल्प का उपयोग कर सकते हैं। आउटपुट फ़ाइल को सेट करने के लिए \ o का उपयोग करें, और केवल tcles आउटपुट tuples (या \pset केवल पंक्ति गणना "फ़ूटर" को बंद करने के लिए करें)। एक

\o /home/flynn/queryout.txt 
\t on 
SELECT * FROM a_table; 
\t off 
\o 

वैकल्पिक रूप से,

\o /home/flynn/queryout.txt 
\pset footer off 
. . . 
संबंधित मुद्दे