我期待刪除所有來自行繪製字符:psql非選擇:如何刪除格式並只顯示某些列?
PGPASSWORD="..." psql -d postgres -h "1.2.3.4" -p 9432 -c 'show pool_nodes' -U owner
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | 10.20.30.40 | 5432 | 2 | 0.500000 | primary
1 | 10.20.30.41 | 5432 | 2 | 0.500000 | standby
(2 rows)
添加-t
選項擺脫了頁眉和頁腳,但豎條仍然存在:
PGPASSWORD="..." psql -t -d postgres -h "1.2.3.4" -p 9432 -c 'show pool_nodes' -U owner
0 | 10.20.30.40 | 5432 | 2 | 0.500000 | primary
1 | 10.20.30.41 | 5432 | 2 | 0.500000 | standby
注意此問題特定於show pool_nodes
和其他類似的非select
SQL語句。
我現在的解決方法是涉及Linux的cut
命令:
<previous command> | cut -d '|' -f 4
的問題有兩個部分:
- 如何使用
psql
只能豎條上述被刪除? - 如何使用
psql
只能顯示特定列(例如status
)或列?例如,結果可能只是兩行,每行顯示數字2
。
我在CentOS 7服務器上使用psql版本psql (PostgreSQL) 9.2.18
。
使用'-qAtX'還包括垂直輸出刪除所有間距的酒吧。不幸的是,這並沒有回答這個問題,我的OP已經顯示了'cut'解決方法(注意:你的-f和-c選項的使用是不正確的)。但是,謝謝你的嘗試! –
呃,腦f重新切割。那麼你打算實現什麼?你的問題有點含糊,因爲簡單地「移除豎條」(管道)不是很有效,而且你不知道你試圖達到的底層目標是什麼。 *輸出列的寬度不固定,取決於輸出數據*所以按char-column範圍切割不能可靠工作。如果您只想更改分隔符,請參閱手冊頁 - 例如「-F」。但請注意,這不會產生CSV - 任何','在數據結果中*都不會被轉義*。 –
詳細說明。也許你應該解釋你的實際潛在目標是什麼? –