作者Whisky (AnAn Ni Hao)
看板Linux
标题[问题] 新手撷取comport output问题
时间Thu May 21 10:23:57 2020
各位前辈好,
小弟目前在树莓派上透过picocom得到comport output
目的是将每一笔output加上timestamp後存出log档并且即时显示在terminal
command如下:
sudo picocom /dev/xxxxxxxx -b 115200 -l |ts '%Y-%m-%d %H:%M:%.S' |tee xxx.log
由於某些原因log的换行符号掺杂了CR, LF, CRLF三种...
但後续的log分析在windows OS,导致换行整个大乱
目前的想法是希望能够透过修改以上command将CR给滤掉,只保留LF及CRLF
已经尝试过以下方式:
1. picocom本身的map参数将CR转换为CRLF,但是会导致原本的CRLF变成CRLFLF
2. sed,有成功使用sed过滤掉,但是只能使用在文档
配合picocom做即时过滤好像有困难,没有找到相关的方法
卡关有点久,希望有前辈能够提点一下,非常感谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.133.113 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1590027839.A.0CC.html
1F:→ bitlife: windows分析程式不能改吗? 应该蛮简单的. 或者先跑一个 05/21 11:04
2F:→ bitlife: filter程式,再丢给原分析程式也可以 05/21 11:04
3F:→ bitlife: 以你的第2点来说,在windows分析前用sed跑一下不就解决了? 05/21 11:06
windows那边是可以改的,但因为还是会有查看raw log的需求,所以希望能够从源头下手
确实可以用sed先跑一下就达到目的
只是想求解否有办法能够做到从comport拿回来的同时可以把东西给过滤掉
这样比较有利於後续的人员处理进一步的资料...感谢您的意见!
※ 编辑: Whisky (42.73.133.113 台湾), 05/21/2020 11:13:29
4F:→ bitlife: 如果是要全自动,那就是把sed放在ts和tee之间不就是了吗? 05/21 11:08
5F:推 Typebrook: 同上,sed是吃STDIN的,可以放在pipeline 05/21 11:13
有试过这样的方式:
前略 |ts '%Y-%m-%d %H:%M:%.S' |sed -i 's/\r//g' |tee xxx.log
但是显示write to stdout failed Broken pipe
还请各位解答一下...谢谢!
※ 编辑: Whisky (42.73.133.113 台湾), 05/21/2020 11:18:30
6F:→ Typebrook: -i 参数是拿来改档案的,把它拿掉 05/21 11:26
-i拿掉後有成功!
感谢前辈们的帮忙!
※ 编辑: Whisky (42.73.133.113 台湾), 05/21/2020 11:31:34