presmerovani vystupu

Michal Vojan mysutka na seznam.cz
Čtvrtek Říjen 26 16:21:12 CEST 2006


Dobry den,

protoze mi tu jeden program vypisuje na stdout a stderr  zpusobem, ktery mi
nevyhovuje, chtel jsem s tim neco udelat.
Program divnej_program vypisuje neco na stdout a neco na stderr. To, co jde
na stderr, chci prefiltrovat a z toho neco vynechat, cast propustit dal na
stderr a zbytek preposlat na stdout tak, aby se to primichalo k stdout z
divnyho_programu.


Takze delam priblizne nasledujici:


-------------------------------------
exec 6 >(cat - |grep -v "^$" >&1)

divnej_program 2>&6 | nejaka_funkce

-------------------------------------
... a takhle to samozrejme nefunguje, jak bych si predstavoval.
V tomhle pripade jde jen o jednoduchy priklad, kde by se mely prazdne radky
z chyboveho vystupu odfiltrovat a zbytek poslat nekam nevimkam tak, aby to
mohlo jit beznym zpusobem pajpou na standardni vstup jine funkce.
Jasne ze tenhle pripad lze resit jinak a jednodusseji, ale jednak to bude
slozitejsi a druhak me to zajima, jestli se to da resit timhle zpusobem,
pripadne jak. Problem mam totiz s tim, ze ono filtrovani se spousti jako
subproces, ktery si tak vytvari svoje vlastni vystupy, ktere uz neumim
odchytit. Zaroven se mi vsechno na konzoli vypise v rozhazenem poradi, coz
se mi taky nelibi.

Diky za namety
Michal Vojan



Další informace o konferenci Linux