
Я использую 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 '~'
работа должна быть сделана.