Как обернуть вывод команды watch?

9

Рассмотрим следующую команду:

watch -d "ps -ef | grep java"

Это дает следующий вывод:

kshitiz  11369 11285  0 Oct13 ?        00:06:02 /usr/lib/jvm/jdk1.7.0_40/jre/bin/java -Djava.awt.headless=true -Didea.version==14.1.2 -Xmx512m -Dfile.e

Выход за пределы -Dfile.eобрезается или выходит за пределы экрана. Как я могу прокрутить, чтобы увидеть вывод или слово обернуть его?

Использование foldбез часов: введите описание изображения здесь

Использование foldс часами: введите описание изображения здесь

Кшитиз Шарма
источник

Ответы:

7

Передайте выходной сигнал по сгибу, чтобы обернуть вывод на указанную ширину (по умолчанию 80):

watch -d "ps -efww | grep '[j]ava' | fold -s"
  • Используйте -wфлаг psдля широкого вывода и дважды для неограниченного вывода.
  • fold -s перерывы в местах
  • Также обратите внимание на grepкоманду. Я изменился javaна [j]ava. Таким образом, grepпроцесс не будет соответствовать самому себе в psвыводе.
хаос
источник
1
Хотя сгиб, кажется, работает хорошо сам по себе. С watchвыходом все еще рубят -Dfile.e.
Кшитиз Шарма
2

К тому же:

Вы также можете попробовать указать ширину; это позволит в полной мере использовать ширину вашего экрана.

В моем случае следующее дает идеально сформированный вывод. Настройте параметр ширины в соответствии с размером монитора / терминала:

watch -d "ps -ef --width 1000 | grep java | grep -v grep  "
Свапнил джайсвал
источник