Forum: PC-Programmierung Shell call up another system (cu) mit 2 pipes


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Peter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin neu in der Linux-Welt und versuche einen Datenlogger 
anzusprechen. Das funktioniert auch soweit ganz gut. Allerdings kommt es 
zu fehlerhaften Darstellungen, wenn ich die serielle Schnittstelle 
öffne, während der Datenlogger gerade sendet. Das versuche ich mit 
"grep" abzufangen, da der Datenlogger zu Beginn immer 316,############ 
sendet. Umleiten will ich die eingelesene Zeile mit einem Zeitstempel.

Mein Befehl dafür sieht folgendermaßen aus:
1
/usr/bin/cu -l /dev/ttyACM0 -s 9600 | grep ^316 | ts '%Y-%m-%d %H:%M:%S,'

Das funktioniert aber nicht. Wenn ich sowohl |grep ^316 weglasse 
funktioniert die Ausgabe, als auch | ts ....

Im Internet finde ich dazu keine weitere Hilfe. Dort steht überall, dass 
man mehrere Pipes aneinander hängen kann.

Wenn ich
1
echo 316 xyz | grep ^316 | ts '%Y-%m-%d %H:%M:%S,'
versuche, funktioniert alles wunderbar.

Weiss jemand, wieso der erste Befehl nicht funktioniert.

Vielen Dank schonmal

von foobar (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Eine Möglichkeit: grep buffered die Ausgabe und es dauert einfach nur 
sehr lange, bis die ersten Daten ausgegeben werden. Bei der 
echo-Variante geht's fix, da er sofort ein EOF bekommt. Probier mal die 
grep-Option "--line-buffered".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.