Output van processen filteren

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

  • jep
  • Registratie: November 2000
  • Laatst online: 09-02 19:28
Mensen,

Hoe ik output van bepaalde processen filter, grep etcetera weet ik al jaren. Er zijn echter processen die output geven die niet makkelijk te filteren of greppen is.

Voorbeeldje met mplayer:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
shell:~# mplayer http://213.193.238.96:1234/
MPlayer 1.0pre6-3.3.5 (C) 2000-2004 MPlayer Team
CPU: Intel Pentium 4/Xeon/Celeron Foster (Family: 8, Stepping: 7)
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2


Playing http://213.193.238.96:1234/.
Resolving 213.193.238.96 for AF_INET6...
Couldn't resolve name for AF_INET6: 213.193.238.96
Connecting to server 213.193.238.96[213.193.238.96]:1234 ...
Connect error : Connection refused
Unable to open URL: http://213.193.238.96:1234/


Exiting... (End of file)


Het Mplayer verhaal, 6 regels over de stream en een EOF. Prima.

Vervolgens wil ik de output naar een file schrijven:

code:
1
2
3
4
shell:~# mplayer http://213.193.238.96:1234/ > test
Couldn't resolve name for AF_INET6: 213.193.238.96
Connect error : Connection refused
Unable to open URL: http://213.193.238.96:1234/


3 Regels doen daar niet aan mee, en in de file test staat nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
MPlayer 1.0pre6-3.3.5 (C) 2000-2004 MPlayer Team
CPU: Intel Pentium 4/Xeon/Celeron Foster (Family: 8, Stepping: 7)
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2


Playing http://213.193.238.96:1234/.
Resolving 213.193.238.96 for AF_INET6...
Connecting to server 213.193.238.96[213.193.238.96]:1234 ...


Exiting... (End of file)


Diverse processen en applicaties hebben dergelijke dingentjes. Omdat ik nu de errors van mplayer op moet gaan vangen besloot ik er maar eens een topicje aan te wagen. Ik vraag het me namelijk al zo lang af wat de logica hierin is en hoe ik dit behandel.

Bedankt :)

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Je bedoelt gewoon stderr vs stdout of ligt het aan mij?

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Je reroute nu de standaard output, je hebt ook nog bijv. error output, en die pakt hij dan niet mee.
In cronjobs kom je dan ook vaak 2>&1 , wat wat weer voor stdout en stderr staat .

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Of zie gewoon het kopje "REDIRECTION" in de manpage van bash (hoogstwaarschijnlijk de shell die je gebruikt).

  • jep
  • Registratie: November 2000
  • Laatst online: 09-02 19:28
Dom natuurlijk, voor cron gebruikte ik 't wel maar zo kan 't dus ook:

shell:~# mplayer http://213.193.238.96:1234/ 2>&1 | grep refused
Connect error : Connection refused

Super! :) Thanks.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
De volgende keer kun je dit gewoon in man bash of ergens op internet vinden.
Pagina: 1

Dit topic is gesloten.