Ограничить количество строк, отображаемых одновременно, запустив команду

Ограничить количество строк, отображаемых одновременно, запустив команду

У меня есть несколько команд, которые я запускаю в терминале, которые выводят все, что они делают, что здорово, но мне не нужно, чтобы все мое окно было заполнено тысячами строк ввода. Есть ли способ сделать так, чтобы отображались только последние x строк вывода, а остальные удалялись?

решение1

Вы можете использовать команду tail. Она выведет список только последних нескольких строк файла, указанного пользователем. Если необходимо, она также выведет список только последних нескольких строк в реальном времени. tail -n 5 выведет последние 5 строк. Просто выполните man tail, чтобы получить другие параметры.

решение2

Не зная, для каких команд вы видите много вывода, я могу сказать, что вы можете ограничить количество строк, выводимых на терминале с помощью команды tail, используя "pipe" для отправки вывода 1-й команды во 2-ю команду. Примером может быть:

ls | tail -n 5  

Вместо отправки вывода команды ls на экран, он отправляет (или передает) его команде tail. Команда tail здесь выведет последние 5 строк вывода ls, поскольку указано "-n 5".

решение3

Консольный вывод — это просто строки, записанные одна за другой в выходной поток (стандартный вывод или стандартная ошибка). Консольные окна и терминальные приложения просто отображают их, прокручивая предыдущие вверх. Они не могут стереть уже напечатанные строки. Вам нужно либо:

  1. Консольное/терминальное приложение со встроенной возможностью пропускать все, кроме последнегонлинии при перерисовке при получении новой линии; это, возможно, и возможно, но я не знаю как.
  2. Дополнительное приложение, которое может это сделать, запускается из консоли как оболочка для вашего приложения; screenи, tmuxвероятно, может это сделать, но я не знаю как.
  3. multitailНапример, здесь подойдет приложение, которое может это сделать и которому вы передаете вывод консоли вашего приложения :

    find | env LINES=10 multitail -j
    

    отобразит вывод find, никогда не показывая более 10 строк одновременно.

Вы не указали, какая у вас ОС, но multitailона доступна для Linux, например, как пакет Ubuntu.

Связанный контент