2016-10-04 60 views
5

當在Linux中使用PSQL,如果我的SQL查詢的結果中包含許多列或數據的長字符串,它將自動換行的初始視圖,只有一次我滾動到一側將其停止包裝和展示每行放在一個單獨的行上。禁用包裝

我已經試過各種\pset optionsformat unalignedformat alignedformat wrappedcolumns 0columns 1000,但似乎沒有一個充分停止包裝,除非我生成靜態輸出到文件。

如何將它設置爲從不包裝輸出,同時仍然可滾動並使用默認的ascii表格格式顯示結果?

回答

14

Psql使用系統查看器在控制檯中顯示其輸出。在bash中,它可能使用less作爲它提供的可滾動/可分頁功能。要使用不同的查看器或使用不同的設置,只需設置PAGER環境變量。

運行psql使用less-S--chop-long-lines選項似乎爲我工作:

PAGER="less -SF" psql 
2

要禁用選擇查詢的包裹輸出。

\ pset中尋呼機上\ pset中尋呼機斷開切換回舊的輸出圖。

1

更少的-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 

似乎在不必手動退出較少的不便更安全。

0

或許你應該使用aligned格式輸出:

\pset format aligned 

您可以檢查所有可用的格式,以滿足您的需求:

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

而且你應該在你的環境檢查PAGER配置價值