Anfängerfrage zu Script mit "sed"

Begonnen von Roffneg, 03 Januar 2018, 18:37:10

Vorheriges Thema - Nächstes Thema

Roffneg

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

digiart

Ich würde das eher mit awk machen:
Humidity: egrep -w "Humidity =" humidity | awk '{print $3}'
Temp: egrep -w "Humidity =" humidity | awk '{print $7}'
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Roffneg


rudolfkoenig

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