LINUX.ORG.RU

Как использовать less с бесконечным источником?

 


0

1

Есть некая программа, которая выдаёт потенциально бесконечный текст. Ну к примеру любой просмотрщик логов, скажем docker logs -f

Использовать его просто в таком виде - неудобно. Удобно через less, который даёт мотать, искать и тд. Но я не понимаю, как правильно это делать так, чтобы не ломать предыдущую программу в пайпе.

К примеру я пишу docker logs -f jovial_kori | less

Открывается less с начала файла. Мне нужно перемотать в текущий конец. Если нажать G то ничего не получится, он будет ждать EOF. Если начать F то он перемотает в конец файла и начнёт отслеживать новые данные. Ладно, хорошо. Теперь я хочу временно прекратить отслеживать новые данные и жму Ctrl+C, чтобы выйти из режима F. Пока что всё хорошо. Но на самом деле нет - предыдущая программа в пайпе уже умерла. И хотя я могу смотреть то, что она успела написать до сих пор, новые данные я уже не получу.

Т.е. наверное вопрос можно сформулировать так: как выйти из режима F не «убивая» предыдущую программу в пайпе? Или же как перейти к концу текущего «файла» не используя F?

★★★

Последнее исправление: vbr (всего исправлений: 1)

А вы внутренний HELP по less почитайте:

                   SUMMARY OF LESS COMMANDS

      Commands marked with * may be preceded by a number, N.
      Notes in parentheses indicate the behavior if N is given.
      A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K.

  h  H                 Display this help.
  q  :q  Q  :Q  ZZ     Exit.
 ---------------------------------------------------------------------------

                           MOVING

  e  ^E  j  ^N  CR  *  Forward  one line   (or N lines).
  y  ^Y  k  ^K  ^P  *  Backward one line   (or N lines).
  f  ^F  ^V  SPACE  *  Forward  one window (or N lines).
  b  ^B  ESC-v      *  Backward one window (or N lines).
  z                 *  Forward  one window (and set window to N).
  w                 *  Backward one window (and set window to N).
  ESC-SPACE         *  Forward  one window, but don't stop at end-of-file.
  d  ^D             *  Forward  one half-window (and set half-window to N).
  u  ^U             *  Backward one half-window (and set half-window to N).
  ESC-)  RightArrow *  Right one half screen width (or N positions).
  ESC-(  LeftArrow  *  Left  one half screen width (or N positions).
  ESC-}  ^RightArrow   Right to last column displayed.
  ESC-{  ^LeftArrow    Left  to first column.
  F                    Forward forever; like "tail -f".
  ESC-F                Like F but stop when search pattern is found.
  r  ^R  ^L            Repaint screen.
  R                    Repaint screen, discarding buffered input.
        ---------------------------------------------------
        Default "window" is the screen height.
        Default "half-window" is half of the screen height.

anonymous
()
Ответ на: комментарий от vbr
docker logs -f jovial_cori | less 

А если в докер лог с цветами

docker logs -f jovial_cori | less -R

В самом less нажми SHIF+F - для автоматический прокрутки, или f - для остановки.

Поражаюсь, приводится справка - читай.

Человек, я ХЗ, но придумал вот такое ХЗ.

anonymous
()
Ответ на: комментарий от anonymous

Я не понимаю, что ты хочешь сказать. f для остановки не работает. При чём тут цветы? Может быть ты невнимательно прочитал мой вопрос?

vbr ★★★
() автор топика
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от vbr

При чём тут цветы?

Ну если вывод расцвеченный и не хочется видеть вот так:

ESC[0mSA: ESC[0;33mGileESC[0m, MAIL

То нужен ключ -R.

В bash вывод можно раскрасить в разные цвета. Почиатй.

Я не понимаю, что ты хочешь сказать. f для остановки не работает.

Странно, должно.

Может быть ты невнимательно прочитал мой вопрос?

Может.

anonymous
()