Variablen im awk

monarch

monarch

Schattenparker
Hi Leute,

wiedermal ein awk-Problemchen. Inspiriert von dem Laptop-Powersafe-Thread hab ich mir folgendes Scriptchen gebastelt, das mir die CPU-Auslastung ausrechnet und den momentanen Governor ausliest.

Jetzt hätte ich die beiden Sachen gerne auf einer Zeile, ich will das $GOV im awk mit reinnehmen.

Code:
vmstat 1 | while read line;
  do 
    GOV=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`


    echo $line| awk '{print "CPU-Last: " $13 + $14 "   # " }' ; 
    echo $GOV;
  done

Die Ausgabe ist so:
Code:
CPU-Last: 0   # 
powersave
CPU-Last: 0   # 
powersave
CPU-Last: 12   # 
powersave
CPU-Last: 2   #

und ich hätte es gerne so:


Code:
CPU-Last: 0   # powersave
CPU-Last: 0   # powersave
CPU-Last: 12   # powersave
CPU-Last: 2   # performance


Ich hätt gern irgendwas in der Art echo $line| awk '{print "CPU-Last: " $13 + $14 " # " $GOV}' ; aber das geht so nicht.

Irgendwelche Ideen? Muss auch nicht unbedingt awk sein.
 
Hi,

wie wärs mit:

Code:
vmstat 1 | while read line;
  do 
    GOV=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`


    echo $line| awk '{print[b]f[/b] "CPU-Last: " $13 + $14 "   # " }' ; 
    echo $GOV;
  done

oder:

Code:
vmstat 1 | while read line;
  do 
    GOV=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`


    echo [b]-n[/b] $line| awk '{print "CPU-Last: " $13 + $14 "   # " }' ; 
    echo $GOV;
  done


???
 
"echo -n" packts nicht. Hatt ich auch schon versucht.
Aber die erste Lösung ist super!!

Danke :))
 
:think:

Ahhh na klar , weil der awk noch dazwischen ist, stimmt :D
 
Ansonsten wenn du Umgebungsvariablen in AWK reinholen willst, gibts ne spezielle AWK-Array welche das erlaubt (ENVIRONMENT oder so aehnlich -> man).
 
Code:
vmstat 1 | while read line;
  do 
    GOV=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`


    echo -n $line| awk '{print "CPU-Last: " $13 + $14 "   # " EVOIRON[GOV] }' ; 
    echo $GOV;
  done
Geht nicht? Statt print würde ich printf verwenden
Code:
awk '{printf "CPU-Last: %s  # %s" $13 + $14 EVOIRON[GOV] }' ;

Hans
 

Ähnliche Themen

skript zum löschen doppelter dateien

Rollei Mini Wifi Camcorder

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

Modulfehler?

Problem mit Apache2 + MySQL Server

Zurück
Oben