2015-05-26 177 views
5

我有一個查詢位於/ path/to/query文件中。如何將輸出結果保存到csv文件,而不使用查詢中的COPY?我嘗試了以下命令,但輸出文件的字段之間用「|」分隔。將psql輸出保存到csv文件

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' 

回答

3

它不是在文檔中解釋,但-F選項需要-A選項(不對齊的表輸出)的工作:

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A 

如果您不希望您的CSV頭,這意味着,頂部和底部沒有額外的行,也使用-t選項。

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A -t 

從幫助:

-A,--no對齊對齊表格輸出模式
-F,--field分離器= STRING 設置字段分隔符(默認:「| 「)
-t,--tuples只打印行只

+0

它的工作原理。這是一個挑剔的小問題,但我該如何擺脫2個額外的行:頂部的「SELECT 」和底部的「(行<行數>)」? –

+0

如果你只想要元組,而沒有其他行在底部和頂部,使用選項-t:'psql -U username -d dbname -f/path/to/query -o/path/to/output/file - F','-A -t'。 –

+0

我試過了。我仍然看到「SELECT >,儘管底部的行數已經消失。 –