Как перенаправить весь вывод std из bash в команду типа 'grep' или 'sed', чтобы отфильтровать вывод и затем записать его в файл?
Это то, что я хочу в принципе: exec > >(cat | cat >>/tmp/myoutput.txt) .
Последняя команда работает как положено.
Но если я заменю первого cat на grep -v 'foo' или на sed 's/foo/bar/g' данные не будут записаны в файл.
Как заставить приведенный выше пример работать с grep или sed?
Справочная информация: я хотел бы отфильтровать сообщения об ошибках из .xsession-errors.
sed -i 's/foo/bar/g' .xsession-errors не работает, потому что sed заменяет файл .xsession-errors и будущие выходные данные программ не видны.
Таким образом, один из вариантов - заменить строку в /etc /X11 /Xsession кодом, фильтрующим сообщения.
Больше информации здесь:
- Я использовал
cat2 раза, чтобы показать, что каналы работают в подоболочке, как ожидалось, и перенаправить все в файл.catконечно, не нужна в финальной версии. - Думаю, у меня было достаточно вывода для заполнения буферов, потому что я несколько раз делал
ls /usr/для заполнения буферов.) exec | sed ...не работает
