folgende Ausgabe von "cat/proc/Softirqs":Shell-Skript zu schneiden/proc/Softirqs
CPU0 CPU1 CPU2 CPU3
HI: 24 13 7 54
TIMER: 344095632 253285150 121234786 108207697
NET_TX: 2366955 319 695 316044
NET_RX: 16337920 16030558 250497436 117201444
BLOCK: 19631 2747 2353 5067051
BLOCK_IOPOLL: 0 0 0 0
TASKLET: 298 93 157 20965
SCHED: 74354472 28133393 30646119 26217748
HRTIMER: 4123645358 2409060621 2466360502 401470590
RCU: 26083738 17708780 15330534 16857905
Meine anderen Maschine verfügt über 24 CPU-Kern und der Ausgang ist schwer zu lesen, Ich mag die Ausgabe, um nur cpu0, cpu2, cpu4, cpu6, ... zu sein. Ich weiß, Schnitt oder awk könnte ued sein, um das zu tun, aber keine Idee, wie man es benutzt, um sogar Ausgabespalten zu erhalten.
Edit:
awk -F" " '{printf("%10s\t%s\n", $2,$4) }'
erhalten
CPU1 CPU3
24 7
344095632 121234786
2366955 695
16337920 250497436
19631 2353
0 0
298 157
74354472 30646119
4123645358 2466360502
26083738 15330534
leider sollte CPU1 CPU0 sein, CPU3 sollte CPU2, die erste Zeile hat nur 4 Spalten sein, kann ich die erste Zeile überspringen in dieser Schale?
Edit2:
watch -d "cat /proc/softirqs | awk -F" " '{printf("%10s\t%s\n",$2,$4)}' "
Begegnung Fehler wie folgt aus:
Every 2.0s: cat /proc/softirqs | awk -F '{print }' Tue Jun 21 10:23:22 2016
Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
POSIX options: GNU long options: (standard)
-f progfile --file=progfile
-F fs --field-separator=fs
-v var=val --assign=var=val
Short options: GNU long options: (extensions)
-b --characters-as-bytes
-c --traditional
-C --copyright
-d[file] --dump-variables[=file]
-e 'program-text' --source='program-text'
-E file --exec=file
-g --gen-pot
-h --help
-L [fatal] --lint[=fatal]
-n --non-decimal-data
-N --use-lc-numeric
-O --optimize
-p[file] --profile[=file]
-P --posix
-r --re-interval
-S --sandbox
-t --lint-old
-V --version
To report bugs, see node `Bugs' in `gawk.info', which is
section `Reporting Problems and Bugs' in the printed version.
gawk is a pattern scanning and processing language.
By default it reads standard input and writes standard output.
Examples:
gawk '{ sum += $1 }; END { print sum }' file
gawk -F: '{ print $1 }' /etc/passwd
was sonst sollte ich versuchen?
Edit3:
Die endgültige bearbeitbar Schale möchte:
# define function encapsulating code; this prevents any need for extra layers of quoting
# or escaping.
run() {
awk 'NR>1{printf("%20s\t%10s\t%s\n",$1,$2,$4)}' </proc/softirqs|egrep 'TIMER|RX'
}
# export function
export -f run
# run function in subshell of watch, ensuring that that shell is bash
# (other shells may not honor exported functions)
watch -d "bash -c run"
Wenn Sie eine Reihe von Shell-Code entkommen wollen sie passieren zu 'watch',' printf % q' ist dein Freund - oder leg es einfach in ein Skript; 'watch' - das bei jedem Refresh einen neuen' sh -c'-Lauf ausführt - ist ausreichend ineffizient, um durch einen zusätzlichen Shell-Aufruf nicht viel zu verlieren. –
Das heißt, die Frage zu stellen, wie man den Dingen aus dem Weg gehen kann, sollte eine eigene Frage sein, anstatt in diese zu münden; Wahrscheinlich haben Sie die Frage gestellt, da sie zu weit gefasst ist, um sie in die Site-Regeln einzupassen, da sie nun zwei völlig unterschiedliche Fragen enthält und eine Antwort beide umfassen müsste, um vollständig reagieren zu können. –
...oder, wenn Sie Code haben, den Sie mögen und einfach wissen wollen, wie man ihn von 'watch' ausführt, ist das auch akzeptabel; es versucht, sowohl den Formatierungscode zu bekommen, als auch ihn von "watch" in einer übertriebenen Frage auszuführen. –