FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Roffneg am 03 Januar 2018, 18:37:10

Titel: Anfängerfrage zu Script mit "sed"
Beitrag von: Roffneg am 03 Januar 2018, 18:37:10
Hallo,
ich möchte mit einem Skript per Telnet einen Feuchtigkeitswert in einen Dummy schreiben. Hierzu habe ich bereits ein kleines Skript geschrieben, was regelmäßig die Werte des Sensors abfragt und in eine Datei schreibt.
Der Inhalt sieht dann etwa so aus:

Raspberry Pi wiringPi DHT22 reader
www.lolware.net
Data not good, skip
Data not good, skip
Humidity = 62.00 % Temperature = 23.00 *C

Nun soll der Humidity-Wert in eine Variable geschrieben werden, um per Telnet in den Dummy zu gelangen.
Per egrep sieht die Ausgabe dann schon so aus:

Humidity = 62.00 % Temperature = 23.00 *C

wie kann ich nun noch mit sed die 62.00 (ohne %) definieren?

egrep -w "Humidity =" humidity | sed ...

Grüße
Roffneg
Titel: Antw:Anfängerfrage zu Script mit "sed"
Beitrag von: digiart am 03 Januar 2018, 18:41:38
Ich würde das eher mit awk machen:
Humidity: egrep -w "Humidity =" humidity | awk '{print $3}'
Temp: egrep -w "Humidity =" humidity | awk '{print $7}'
Titel: Antw:Anfängerfrage zu Script mit "sed"
Beitrag von: Roffneg am 03 Januar 2018, 19:10:09
Funktioniert super. Vielen dank!
Titel: Antw:Anfängerfrage zu Script mit "sed"
Beitrag von: rudolfkoenig am 03 Januar 2018, 19:45:51
Sed ist kryptischer (und hat einen privitiveren Regexp als perl):
Humidity: sed -n '/Humidity/s/.* \([0-9.][0-9.]*\) %.*/\1/p' humidity
Temp: sed -n '/Humidity/s/.* \([0-9.][0-9.]*\).*/\1/p' humidity

awk kann auch selbst filtern:
Humidity: awk '/Humidity/{print $3}' humidity
Temp: awk '/Humidity/{print $7}' humidity