Linux

ssh 會話中的自動換行不適用於 grep

  • July 28, 2015

當我 ssh 到我的 Linux 伺服器並像這樣使用 grep 時:

grep ‘超時時間’ 日誌文件 | 較少的

自動換行不起作用。

但是,如果我使用相同的命令但先使用 less,如下所示:

更少的日誌文件 | grep ‘超時時間’

行換行。我不確定問題是什麼,或者這是否正常。但無論我使用什麼 ssh 客戶端,它都會發生。我已經嘗試過 putty 和 Ubuntu 客戶端。我怎樣才能解決這個問題?

當你這樣做

grep 'timeout exceeded' logfile | less

您可以使用向右箭頭鍵移動到行尾(向左向後移動)。

這不是 的預設行為less。預設是換行長行。

您看到此行為是因為您在環境變數-S中設置了選項(和其他幾個) 。LESS

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

要解決此問題,請檢查您的 shell 啟動腳本(例如$HOME/.bash_profile, $HOME/.bashrc)和系統 shell 啟動腳本(例如/etc/profile.d目錄中的那些)以查看環境變數的設置位置,並進行所需的更改。

引用自:https://serverfault.com/questions/708903