В 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.