Изменение терминального размера влияет на вывод grep в команде часов

Если я выполняю команду как:

watch "ps -ef | grep '^foo.*bar'"

и соответствие произвело строку ps -ef длинная линия как

foo <lots and lots of text here> bar

производится ли эта строка, затронут терминальным размером. Например, если терминал будет полным экраном и этой строкой соответствия на экране, то вывод покажут в часах. Однако, если я изменяю размер окна к половине размера экрана так, чтобы панель была усеченной с экрана, затем grep строка полностью исчезает (по-видимому, строка является усеченной, прежде чем это доберется до grep в конвейере). Это - проблема, потому что я пытаюсь извлечь часть этой строки для использования позже в конвейере.

Там какое-либо решение к этому, чтобы препятствовать тому, чтобы терминальный размер влиял на вывод grep в рамках команды часов?

1
задан 29.04.2011, 00:22

2 ответа

Это не grep, это - PS. Добавьте -ww опции (ps -efww) сказать этому всегда производить сплошные линии.

2
ответ дан 12.12.2019, 10:33

Я не знаю, какой правильные решения, но это, кажется, решает проблему,

watch "COLUMNS=160 ps -ef | grep '^foo.*bar'"

за счет наличия строк от PS свернулся. Изменитесь "160", чтобы быть достаточно длинными для самого длинного "нечто. *bar" строка Вы ожидаете видеть.

1
ответ дан 12.12.2019, 10:33

Теги

Похожие вопросы