LinuxでPsqlを使用する場合、SQLクエリの結果に多くの列またはデータの長い文字列が含まれている場合、最初のビューをラップし、横にスクロールするとラップを停止し、各行を個別の行に表示します。
いろいろ試してみました \pset
オプションformat unaligned
、format aligned
、format wrapped
、columns 0
、columns 1000
などしかし、ファイルへの静的な出力を生成しない限り、fullyラップを停止するようには見えませんでした。
デフォルトのASCIIテーブル形式を使用して、スクロール可能かつ結果を表示しながら出力をラップしないように設定するにはどうすればよいですか?
Psql
は、システムビューアーを使用して、コンソールに出力を表示します。 bash
では、提供するスクロール可能/ページング可能な機能にless
を使用する可能性があります。別のビューアを使用するか、別の設定を使用するには、PAGER
環境変数を設定するだけです。
psql
を実行してless
を-S
または--chop-long-lines
オプションとともに使用すると、うまくいくように見えました。
PAGER="less -S" psql
-S
と入力して、less
の出力を表示しながら、この機能を有効にすることもできます。 Enter。
選択クエリのラップされた出力を無効にします。
\ pset pager onおよび\ pset pager offは、古い出力ビューに切り替えます。
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
手動で終了する必要が少なくなるという不便さで、より安全に思えます。
おそらく、出力にはaligned
形式を使用する必要があります。
\pset format aligned
必要に応じて、利用可能なすべての形式を確認できます。
\pset format TAB
aligned html latex-longtable unaligned
asciidoc latex troff-ms wrapped
また、環境でPAGER
設定値を確認する必要があります