web-dev-qa-db-ja.com

Psql出力のラッピングを無効にします

LinuxでPsqlを使用する場合、SQLクエリの結果に多くの列またはデータの長い文字列が含まれている場合、最初のビューをラップし、横にスクロールするとラップを停止し、各行を個別の行に表示します。

いろいろ試してみました \psetオプションformat unalignedformat alignedformat wrappedcolumns 0columns 1000などしかし、ファイルへの静的な出力を生成しない限り、fullyラップを停止するようには見えませんでした。

デフォルトのASCIIテーブル形式を使用して、スクロール可能かつ結果を表示しながら出力をラップしないように設定するにはどうすればよいですか?

26
Silveri

Psqlは、システムビューアーを使用して、コンソールに出力を表示します。 bashでは、提供するスクロール可能/ページング可能な機能にlessを使用する可能性があります。別のビューアを使用するか、別の設定を使用するには、PAGER環境変数を設定するだけです。

psqlを実行してless-Sまたは--chop-long-linesオプションとともに使用すると、うまくいくように見えました。

PAGER="less -S" psql

-Sと入力して、lessの出力を表示しながら、この機能を有効にすることもできます。 Enter

42
Silveri

選択クエリのラップされた出力を無効にします。

\ pset pager onおよび\ pset pager offは、古い出力ビューに切り替えます。

11
Akshay Shet

less's -Fまたは-Sフラグにより​​\d some_table場合によっては出力を表示しません。

-F or --quit-if-one-screen
    Causes less to automatically exit if the entire file can be 
    displayed on the first screen.

-S or --chop-long-lines
    Causes lines longer than the screen width to be chopped rather than folded. 
    That is, the portion of a long line that does not fit in the screen width is 
    not shown. The default is to fold long lines; that is, display the remainder 
    on the next line.

次のように使用します。

PAGER="less -S" psql

手動で終了する必要が少なくなるという不便さで、より安全に思えます。

8
Arian Daneshvar

おそらく、出力にはaligned形式を使用する必要があります。

\pset format aligned

必要に応じて、利用可能なすべての形式を確認できます。

\pset format TAB
aligned          html             latex-longtable  unaligned        
asciidoc         latex            troff-ms         wrapped       

また、環境でPAGER設定値を確認する必要があります

3
Eugen Konkov