• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

sed: Bestimme Teile aus langem Text extrahieren

Moin Leute, ich habe ein "kleines" Problem. Ich möchte bestimmte Bereiche aus folgender Ausgabe extrahieren.
Code:
as99127f-i2c-0-2d Adapter: SMBus PIIX4 adapter at e800 VCore 1: +1.68 V (min = +1.57 V, max = +1.73 V) VCore 2: +2.51 V (min = +1.57 V, max = +1.73 V) +3.3V: +3.38 V (min = +3.14 V, max = +3.46 V) +5V: +5.08 V (min = +4.73 V, max = +5.24 V) +12V: +12.22 V (min = +10.82 V, max = +13.19 V) -12V: -2.23 V (min = -13.22 V, max = -10.74 V) -5V: -5.39 V (min = -5.25 V, max = -4.74 V) fan1: 2960 RPM (min = -1 RPM, div = 4) fan2: 0 RPM (min = -1 RPM, div = 4) fan3: 0 RPM (min = -1 RPM, div = 4) M/B Temp: +35°C (high = +2°C, hyst = +0°C) CPU Temp: +41.0°C (high = +100°C, hyst = +92°C) temp3: -0.5°C (high = +122°C, hyst = +121°C) vid: +1.650 V (VRM Version 8.2) alarms: beep_enable: Sound alarm enabled
sensor ok

Das ist die Ausgabe eines Nagios-Plugins. (check_sensors -v) Im Grunde genommen eigentlich nur die Ausgabe von "/usr/bin/sensors" ohne Zeilenumbrüche.

Ich würde daraus jetzt gerne bestimmte Teile ausschneiden.
zum Beispiel:

fan1: 2960 RPM
CPU Temp: +41.0°C

Wobei sich die Werte natürlich permanent ändern.

Ich hoffe mir kann jemand helfen.
 
das ist natürlich auch mit sed trivial...

Überlege einen passenden Regex: von fan1 bis zur 1.öffnenden Klammer und von CPU bis zur 1. öffnenden Klammer...

Code:
sed -e 's/.*\(fan1[^(]*\).*\(CPU[^(]*\).*/\1\n\2/'
 
Oben