PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellskript: bestimmten Text herausfiltern...



ennservogt
23.09.02, 16:21
Servus,
könnte mir bitte wer bei folgendem Problem weiterhelfen:

Aus folgender Konsolenausgabe sollen NUR die RXbytes und TXbytes herausgelöst werden.

RX bytes:15943961 (15.2 MiB) TX bytes:2123512 (2.0 MiB)

Ich suche also einen Befehl der mir den Wert zwischen "RX bytes:" und " (15.2 MiB)" herauslöst.
In diesem Fall sollte die Ausgabe dann lauten: "15943961"

Mfg
EnnserVogt

Jasper
23.09.02, 17:18
Original geschrieben von ennservogt
Servus,
könnte mir bitte wer bei folgendem Problem weiterhelfen:

Aus folgender Konsolenausgabe sollen NUR die RXbytes und TXbytes herausgelöst werden.

RX bytes:15943961 (15.2 MiB) TX bytes:2123512 (2.0 MiB)

Ich suche also einen Befehl der mir den Wert zwischen "RX bytes:" und " (15.2 MiB)" herauslöst.
In diesem Fall sollte die Ausgabe dann lauten: "15943961"


sed 's/RX bytes:\([0-9]*\) .*/\1/'

-j

ennservogt
23.09.02, 18:48
Danke Jasper...
Wenn ich mir alleine die Länge der Befehlskette anschaue wird mir schon ganz übel ;-) Alleine wäre ich da nie drauf gekommen. Also beide Daumen hoch für Jasper !

Danke
EnnserVogt

ennservogt
23.09.02, 19:30
Servus,
nachdem ich mir eine manual page zum sed durchgelesen hatte, glaubte ich, daß ich meine nächste befehlskette selber erstellen kann... Leider bin ich doch noch nicht so weit und ich muss nochmals deine Hilfe in Anspruch nehmen.

eth0 Link encap:Ethernet HWaddr 00:48:54:3B:06:A5
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:64511 errors:0 dropped:0 overruns:0 frame:0
TX packets:73585 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:7252282 (6.9 MiB) TX bytes:77927643 (74.3 MiB)
Interrupt:11 Base address:0xe000

Die Befehlskette zum Herauslösen des RX bytes [ sed 's/RX bytes:\([0-9]*\) .*/\1/' ] Wertes hast mir ja schon gesagt, wie lautet aber eine Befehlskette die den Wert für die TX bytes herauslöst ?

Mfg
EnnserVogt

Jasper
24.09.02, 07:02
Original geschrieben von ennservogt
Die Befehlskette zum Herauslösen des RX bytes [ sed 's/RX bytes:\([0-9]*\) .*/\1/' ] Wertes hast mir ja schon gesagt, wie lautet aber eine Befehlskette die den Wert für die TX bytes herauslöst ?


fast (beachte .* am anfang) genauso:

sed 's/.* TX bytes:\([0-9]*\) .*/\1/'

-j