Назад | Перейти на главную страницу

перенос слов в сеансе ssh не работает с grep

Когда я подключаюсь к своим серверам 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.