No Cygwin, estou tentando ler a entrada da porta serial, filtrá-la para remover caracteres nulos e salvar a saída em um arquivo. Algo como o seguinte, que resulta em um arquivo de log vazio:
cat /dev/ttyS1 | tr -d '\000' >myfile.log
Isso mostra stdout no terminal:
cat /dev/ttyS1 | tr -d '\000'
Eu tentei usar stdbuf -oL -eL
por esta postagem , sem sucesso.
Pontos bônus se você conseguir que ele funcione com o stdout de filtragem do grep no terminal (ou seja, registre tudo no arquivo, mas veja apenas a saída filtrada no terminal).
cat /dev/ttyS1 | tr -d '\000' | tee myfile.log | egrep --line-buffered "WARN|ERROR"
Nota: A porta serial que estou usando é um adaptador serial USB FTDI.
/dev/ttyS1
existir ?/dev/ttyS1
como um exemplo. A porta serial que estou usando nesta máquina em particular é diferente e existe (eu posso ler a entrada usandocat /dev/ttyS1
).cat /dev/ttyS1
obras ecat /dev/ttyS1 | tr -d '\000'
produz nada parece sua porta serial está produzindo apenas nulocat /dev/ttyS1 > tempfile
ecat tempfile | tr -d '\000'
?