В Cygwin я пытаюсь прочитать ввод последовательного порта, отфильтровать его, чтобы удалить нулевые символы, и сохранить вывод в файл. Что-то вроде следующего, что приводит к пустому лог-файлу:

cat /dev/ttyS1 | tr -d '\000' >myfile.log

Это показывает стандартный вывод на терминале:

cat /dev/ttyS1 | tr -d '\000'

Я пытался использовать stdbuf -oL -eL , согласно этому посту , но безрезультатно.

Бонусные баллы, если вы можете заставить его работать со стандартным фильтром grep на терминале (т.е. записывать все в файл, но видеть только фильтрованный вывод на терминале).

cat /dev/ttyS1 | tr -d '\000' | tee myfile.log | egrep --line-buffered "WARN|ERROR"

Примечание. Последовательный порт, который я использую, является последовательным USB-адаптером FTDI.

0