Как отправить stderr в stdout с каналом к другой команде?

Это может все быть сделано в awk также:

awk '"[0-9]+ errors" {sum += $1}; END {print sum}' verification_report_3.txt
6
05.10.2011, 05:17
4 ответа

Так как у Вас есть две команды, было бы лучше использовать:

{ make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64"; } 2>&1 | myprogram

Или

( make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" ) 2>&1 | myprogram

make clean не направляет его вывод к каналу, Вы захотите использовать любой из двух выше, чтобы позволить оболочке перенаправить вывод обоих make вызовы как один.

9
27.01.2020, 20:23

Необходимо перенаправить STDERR к STDOUT для всех команд. Затем можно передать все это по каналу в myprogram.

( make clean 2>&1 && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" 2>&1 ) | myprogram
2
27.01.2020, 20:23
(make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64") 2>&1 | myprogram
1
27.01.2020, 20:23

В зависимости от сложности myprogram Вы могли также попытаться передать Ваш делать op к myprogram, где Вы читаете stdout и stderr как отдельный поток.

Это зависит от того, как сложный Вы хотите сделать myprogram.

Основным преимуществом является способность обработать stdout и stderr независимо вместо смешанного.

0
27.01.2020, 20:23

Теги

Похожие вопросы