Как перенаправить ВЕСЬ вывод команды в Linux

Как перенаправить ВЕСЬ вывод команды в Linux

Я использую Gentoo Linux. Программа ( equery) выводит огромный список всех установленных на данный момент пакетов ( equery list "*"). Я хочу узнать, какие из них нестабильны. Equery помечает нестабильные пакеты [ ~] перед именем пакета. Дело в том, что это происходит только тогда, когда вывод никуда не перенаправляется - в терминал. Когда я пытаюсь выполнить grep вывод ( equery list "*" | grep "~") или перенаправить его в файл, включая stderr ( equery list "*" &> eql.txt), эта информация не перенаправляется - только имена пакетов.

Итак, как перенаправить ВЕСЬ вывод программы?

решение1

Попробуйте обернуть вашу команду equery врасбуферить.

unbuffer equery list "*" | grep "-"

Команда unbuffer заставляет свою программу-аргумент думать, что она подключена к терминалу. Возможно, вам придется добавить еще один уровень кавычек к "*"аргументу.

решение2

equery -Nотключает обнаружение труб.

Так что equery -N list '*' | grep '~'работа должна быть сделана.

Связанный контент