私はから文字を描画するすべての行削除するために探しています:ヘッダーとフッターを取り除く-t
オプションを追加する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)
を、しかし、垂直バーがまだ存在している:
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
質問は2つの部分があります:psql
を使用するだけで、縦棒が上記削除することができますどのように
- を?
psql
の使用方法は、特定の列(たとえば、status
)または列のみを表示できますか?たとえば、結果はたった2行で、それぞれ数字が2
であることがあります。
私はCentOS 7サーバでpsqlバージョンpsql (PostgreSQL) 9.2.18
を使用しています。スクリプトpsql
使用psql -qAtX
については
-qAtX'はまだ縦含ま '使用して出力すべてのスペーシングが削除されたバー。残念ながら、これは質問に答えるものではありません。私のOPはすでに 'カット'の回避策を示しています(注意:あなたの-fと-cオプションの使用は正しくありません)。しかし、試していただきありがとうございます! –
脳領域は「切断」されています。だから、あなたは何を達成しようとしていますか?あなたの質問は、「垂直バーを取り除く」(パイプ)を取り除くだけではあまり効果的ではなく、そうすることによって達成しようとしている基本的な目標が何であるかは不明です。 *出力列の幅は固定されておらず、出力データに依存する*ので、char列範囲による 'cut 'は確実に動作しません。区切り文字を変更したい場合は、マニュアルページ '-F、'を参照してください。しかし、これはCSVを生成しないことに注意してください - データ結果の中の '、'は*エスケープされません*。 –
精緻化。あなたの実際の根本的な目標は何かを説明するべきでしょうか? –