Это не grep, это ps . Добавьте -ww
параметры ( ps -efww
), чтобы он всегда выводил полные строки.
Изменение размера терминала влияет на вывод grep внутри команды наблюдения
Если я запускаю команду вроде:
watch "ps -ef | grep '^foo.*bar'"
и соответствующая выходная строка ps -ef
является длинной линией, как
foo <lots and lots of text here> bar
на вывод этой строки влияет размер терминала. Например, если терминал работает в полноэкранном режиме, и эта строка помещается на экране, вывод будет отображаться в режиме просмотра. Однако, если я уменьшу размер окна до половины размера экрана, чтобы полоса была обрезана от экрана, тогда строка grep полностью исчезнет (предположительно, строка обрезается до того, как она попадает в grep в конвейере). Это проблема, потому что я пытаюсь извлечь часть этой строки для последующего использования в конвейере.
Есть ли какое-то решение для предотвращения влияния размера терминала на вывод команды grep в команде наблюдения?
2 ответа на вопрос
Я не знаю, каковы правильные решения, но, похоже, это решает проблему,
watch "COLUMNS=160 ps -ef | grep '^foo.*bar'"
за счет того, что строки из PS сложены. Измените значение «160» на длину, достаточную для самой длинной строки «foo. * Bar», которую вы ожидаете увидеть.
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
2
.profile в Mac OS X?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
-
9
"Отсоединить" и "Reattach" Xterms через X сессий?
-
1
Windows дата репрезентация
-
9
grep все файлы .java в каталоге для конкретной строки
-
1
Является ли kill -STOP временной командой?
-
2
Изменить количество строк и столбцов в VT420?
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
2
Можно ли передать выходные данные одной команды двум другим командам?