2015-05-26 23 views
5

/path/to/query dizinindeki bir dosyada yazdığım bir sorgum var. Sorgudaki COPY'yi kullanmadan çıktı sonucunu csv dosyasına nasıl kaydedebilirim? Aşağıdaki komutu denedim, ancak çıktı dosyasının alanları "|" ile ayrılır.Psql çıktısını csv dosyasına kaydetme

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

cevap

3

O belgelerinde açıklandığı, ancak -F seçenek -A seçenek (hizalanmamış tablo çıktı) gerektirir değildir çalışmak:

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

Eğer csv başlıklarını istemiyorsanız, Bu, üstte ve altta ekstra satırlar olmadan, -t seçeneğini de kullanmanız anlamına gelir. yardım itibaren

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

:

-A, unaligned tablo çıktı modunu
-F, --field-ayırıcı = dizge seti alan ayırıcı (varsayılan --no-align: "| ")
-t, - yalnızca yazdırma satırları yalnızca

+0

Çalışıyor. Bu biraz az-seçici, ama nasıl 2 ekstra satırdan kurtulurum: "SELECT " üstte ve "(satırlar )" altta? –

+0

Sadece tuple'ları, alt ve üst satırlarda olmaksızın, -t: 'psql -U username -d dbname -f/path/to/query -o/path/to/output/file seçeneğini kullanın. F ',' -A -t '. –

+0

Bunu denedim. Altta satır sayısı kaybolsa da, hala "SELECT öğesini gördüm. –