Seit dem Update auf stretch sind wohl meine greps in den "CustomReadings" soviel langsamer geworden, dass ich sie so nicht mehr verwenden kann.
Ich möchte sie nun auf eine Variante mit "tac" ändern, nur bekomme ich da immer Logfile-Einträge:
Zitattac: Schreibfehler: Datenübergabe unterbrochen (broken pipe)
Früher habe ich verwendet (z.B.):
qx(grep '55 0. .. 31' /media/usb1/Luxor/raw.log | tail -n 1)
Neu (erzeugt die erwähnten Logfile-Einträge):
qx(tac /media/usb1/Luxor/raw.log | grep -m 1 '55 0. .. 31')
In der Shell funktioniert das problemlos ohne jegliche Meldung.
Grundsätzlich wird auch das richtige ins CustomReading geschrieben, aber zusätzlich kommt es zu dem Logfile-Eintrag.
Folgende in der Shell nicht so performante Variante habe ich auch versucht, da bekomme ich eine andere Fehlermeldung:
{qx(awk '/55 0. .. 31/{k=$0}END{print k}' /media/usb1/Luxor/raw.log)}
Hier lautet der Fehler:
Zitatawk: 1: unexpected character '.'
Kann ich die Logfile-Einträge irgendwie unterdrücken oder hat jemand eine bessere Lösung für mein "grep"?
(Ich möchte eine Datei mit bis zu 20MB durchsuchen und die letzte Zeile mit dem Treffer ausgeben...)