[Unix script] Hoe kan je output van commando 'time' parsen?

Pagina: 1
Acties:

  • ernstblaauw
  • Registratie: Oktober 2000
  • Laatst online: 01-02 20:55
Ik ben bezog met een scriptje, dat van een aantal processen de tijd opneemt. Ik gebruik hiervoor het Unix commando 'time'. Dit zet je voor een willekeurig commando, waarna je, na het uitvoeren van het bestand, informatie krijgt over de duur van de de uitvoer, bijvoorbeeld:
code:
1
time java -jar voorbeeld.jar

De output is als volgt:
code:
1
2
3
real    0m4.129s
user    0m1.824s
sys     0m0.168s

Nu wil ik deze parsen dmv grep. Echter, als ik grep achter mijn commando zet, dan wordt er grep uitgevoerd op 'java -jar voorbeeld.jar' en vervolgens wordt er daarvan de executietijd weergegeven.
Ik wil echter de uitvoer van 'time' parsen. Weet iemand, hoe dat kan?

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 15:22
Dit ligt best redelijk voor de hand. Je moet de output 'pipen' naar grep. Bijvoorbeeld:
code:
1
time java -jar voorbeeld.jar | grep real

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:44
Dit is OS specifiek, en daarom hoort het eerder thuis in het forum thuis dat specifiek over dat OS handelt, in dit geval dus NOS.
-> NOS

https://fgheysels.github.io/


  • ernstblaauw
  • Registratie: Oktober 2000
  • Laatst online: 01-02 20:55
Dat is juist het probleem: de opdracht 'java -jar voorbeeld.jar' wordt dan gepipet naar grep, en vervolgens berekent 'time' de tijd dat dit duurt. Ik wil echter, dat de output van time gepipet wordt. Dat lukt echter niet.

  • decramy
  • Registratie: December 2001
  • Laatst online: 16:54

decramy

root@birdie:~#

je kunt het 'vies' doen met -o, welke de ouput in een file zet, welke je dan weer kunt greppen..

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • ernstblaauw
  • Registratie: Oktober 2000
  • Laatst online: 01-02 20:55
Waar zet ik dan -o achter?

Verwijderd

time java -jar voorbeeld.jar > /tmp/time && grep real /tmp/time

zoiets?

  • brokenp
  • Registratie: December 2001
  • Laatst online: 19:03
ik heb het niet geprobeerd, maar kan je niet zoiets doen?

echo java -jar voorbeeld.jar | time | grep real

  • ernstblaauw
  • Registratie: Oktober 2000
  • Laatst online: 01-02 20:55
brokenp schreef op zondag 22 april 2007 @ 18:52:
ik heb het niet geprobeerd, maar kan je niet zoiets doen?

echo java -jar voorbeeld.jar | time | grep real
Nee, dit werkt niet. Ik krijg een broken pipe error.

Ik gebruik nu dit:
(time java -jar voorbeeld.jar | grep real;) >& temp

En vervolgens
grep real temp

Bedankt voor al jullie hulp!

  • robbert
  • Registratie: April 2002
  • Laatst online: 19:33
ernstblaauw schreef op zondag 22 april 2007 @ 19:02:
[...]

Nee, dit werkt niet. Ik krijg een broken pipe error.

Ik gebruik nu dit:
(time java -jar voorbeeld.jar | grep real;) >& temp

En vervolgens
grep real temp

Bedankt voor al jullie hulp!
(time echo "blaat") 2>&1 | grep real
is dan een stuk handiger.
Pagina: 1