Как я могу отфильтровать вывод из «самообновляющейся» программы, такой как top
, сохранив при этом ее функциональность?
Например, я хочу выделить свое имя пользователя в выводе top
. Моя идея состоит в том, чтобы использовать что-то вроде этого:
top | grep --color -E "user|$"
Это работает, поскольку имя пользователя действительно выделяется, однако курсор находится не там, где он должен быть в верхней программе, и последняя строка отсутствует.
У меня были похожие результаты с другими интерактивными программами оболочки, такими как wget (пытающийся выделить индикатор выполнения с помощью escape-последовательностей) и rsync. Как правильно отфильтровать вывод из интерактивной программы?