Когда я подключаюсь к своим серверам Linux по ssh и использую grep следующим образом:
файл журнала grep 'timeout exceeded' | Меньше
перенос слов не работает.
Однако, если я использую ту же команду, но сначала использую меньше, например:
меньше файла журнала | grep 'превышено время ожидания'
линии переносятся. Я не уверен, в чем проблема, нормально это или нет. Но это происходит независимо от того, какой ssh-клиент я использую. Я пробовал как шпатлевку, так и клиент Ubuntu. Как я могу это исправить?
Это не поведение по умолчанию 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.
Чтобы решить эту проблему, проверьте сценарии запуска оболочки (например, $HOME/.bash_profile
, $HOME/.bashrc
) и сценарии запуска системной оболочки (например, в /etc/profile.d
каталог), чтобы увидеть, где устанавливается переменная среды, и внести желаемые изменения.
Когда ты делаешь
grep 'timeout exceeded' logfile | less
Вы можете использовать клавиши со стрелкой вправо, чтобы перейти к концу строки (влево, чтобы вернуться назад).
Если ваш less
по умолчанию не переносит строки, попробуйте использовать полный путь к less. Бегать which less
и посмотрите, какой путь он вам даст. Тогда используйте вместо этого этот путь. Например, если он находится в / usr / bin / less, попробуйте grep 'timeout exceeded' logfile | /usr/bin/less
.