awk und printf in der bash

Ich versuche, um die gerundete Anzahl der durchschnittlichen Belastung in den letzten 5 Minuten. So, hier geht mein Befehl:

 uptime | awk -F, '{print $5}'|printf "%.0f\n"

Scheint es falsch, da es immer mir 0.

Wenn ich versuchte, eine variable zu verwenden, als Vermittler zwischen awk und printf, dann ist es richtig

 avgload=$(uptime | awk -F, '{print $5}')

 printf "%.0f\n" $avgload

So, nichts falsch mit meinem ersten Versuch?

Dank und Grüße!

UPDATE:

Nur für die Durchschnittliche Auslastung in den letzten 5 Minuten, hier ist die Ausgabe von uptime auf meinem linux-server (Kubuntu)

$ uptime
13:52:19 up 29 days, 18 min, 15 users, load average: 10.02, 10.04, 9.58

Auf meinem laptop (Ubuntu) ist es ähnlich

`$ uptime

13:53:58 bis 3 Tage, 12:02, 8 users, load average: 0.29, 0.48, 0.60 `

Deshalb nehme ich das 5. Feld.

  • Beachten Sie, dass das problem ist, weil printf nicht akzeptieren parameter input auf diese Weise. Müssen Sie mit xargs oder backticks wie bereits an verschiedenen Lösungen.
  • Nee, nur verwenden awk zu tun, die Formatierung. Es hat printf gebaut.
  • So uptime |awk -F, '{printf "%0.f\n",$5}' dann.
  • Danke Jungs!
  • Du bist herzlich willkommen. Bitte wählen Sie eine der Antworten, als die Antwort, markieren Sie diese Frage abgeschlossen.
  • Es ist wohl besser, nehmen $(NF-1) statt $5, weil das Datum und Zeit, Informationen, die anders formatiert für kürzere Laufzeiten.

InformationsquelleAutor Tim | 2009-10-01
Schreibe einen Kommentar