LINUX.ORG.RU

Ответ на: комментарий от ArcFi

Там нет правильного ответа.

Правильный ответ заключается в 'Process Substitution', а именно в >(list)

Направляем в 3 процесса одновременно

cat file | tee >(grep foo) >(xz -z > file.xz) | sed 's/bar/baz/'

Что бы понимать конструкция вида >(list) или <(list) создает трубу в виде файлового дескриптора и возвращает его в виде имени файла, в который/из которого можно писать/читать соответственно.

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 1)
Ответ на: комментарий от Sorcerer

Да точно, но я бы рекомендовал еще почитать комментарии к вопросу по той ссылке, на которую ведет ссылка в комментарий к вопросу по ссылке, которую дали ссылкой здесь.

Ведь читать ссылки по ссылкам на ответы в комментариях намного увлекательней, чем прямой ответ или man bash

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 2)

А между тем ТС уже забанен. Спросить и забаниться - это по-нашему.

das_tier ★★★★★
()

А как в случае `cat file | tee >(grep one)> (grep two)` подавить вывод всего файла в stdout, производимый самим tee? Пробовал разные варианты, но все они захватывают и вывод grep'ов, если перенаправлять конец цепочки в /dev/null как через пайп | так и через &>.

anonymous
()
Ответ на: комментарий от anonymous

Перенаправление в /dev/null прекрасно работает.
Смотри где в пробелах/etc. ошибся.

anonymous
()
Ответ на: комментарий от anonymous

А как ... подавить вывод всего файла в stdout, производимый самим tee?

Не надо ничего специально подавлять.

cat file | tee >(grep one) | grep two

surefire ★★★
()

Ну, вот, теперь надо снова ждать очередного пришествия анонимуса

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.