У меня есть несколько команд, которые я выполняю в терминале, которые выводят все, что они делают, и это здорово, но мне не нужно, чтобы все мое окно заполнялось тысячами строк ввода. Есть ли способ сделать так, чтобы выводилось только последнее число выводимых строк, а остальные удаляются?
3 ответа
Вы можете использовать команду tail. В нем будут перечислены только несколько последних строк файла, указанных пользователем. Если также будет перечислять только последние несколько строк в режиме реального времени, если это необходимо. tail -n 5 напечатает последние 5 строк. Просто сделай мужской хвост, чтобы получить другие варианты.
Не зная, для каких команд вы видите много выходных данных, я могу сказать, что вы можете ограничить количество строк, выводимых на терминал с помощью команды tail, используя "pipe" для отправки вывода 1-й команды 2-й команде. Примером может быть:
ls | tail -n 5
Вместо отправки вывода команды ls на экран он отправляет (или передает) ее команде tail. Здесь команда tail выведет последние 5 строк вывода ls, так как указана опция -n 5.
Консольный вывод - это просто строки, записанные одна за другой в выходной поток (стандартный вывод или стандартная ошибка). Консольные окна и терминальные приложения просто отображают их, прокручивая предыдущие вверх. Они не могут стереть уже напечатанные строки. Вам нужно либо:
- Консольное / терминальное приложение со встроенной возможностью пропустить все, кроме последних n строк, при перерисовке при получении новой строки; это может быть возможно, но я не знаю как.
- Дополнительное приложение, которое может сделать это, запускается из консоли в качестве оболочки для вашего приложения; Возможно,
screen
иtmux
могут это сделать, но я не знаю как. Приложение, которое может сделать это, для которого вы передаете консольный вывод вашего приложения;
multitail
подойдет здесь, например:find | env LINES=10 multitail -j
будет отображать результат
find
, никогда не показывая более 10 строк одновременно.
Вы не указали ОС, на которой работаете, но для Linux доступно multitail
, например, в виде пакета Ubuntu.