我动态写入一个串口输入的文件,如下所示:sudo cu -s 19200 -l/dev/ttyUSB0> serialContent.json
但是当我打开它时,它会向我显示很多钻石问号:
*#*1 ##*1*0*702442501#9 ##*1*0*702442501# 9 ##
我想得的只是这一部分:*#*1 ##*1*0*702442501#9 ##*1*0*702442501#9 ##
当我用vim打开文件时,我得到了很多^ @字符.
我尝试使用sed的| [^ @] || g'serialContent.json> serialContent2.json和sed的| [ ] || g'serialContent.json> serialContent2.json替换字符,但没有运气.
这是我用这个命令得到的:
$ file -bi serialContent.json
application/octet-stream; charset=binary
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能删除这些标记?谢谢!
当您有不可打印的数据时,这是显示的替换字符.
要删除所有不可打印的字符,您可以通过tr -cd '[:print:]'以下方式管道:
sudo cu -s 19200 -l /dev/ttyUSB0 | tr -cd '[:print:]' > serialContent.json
Run Code Online (Sandbox Code Playgroud)
什么是可打印的取决于您的区域设置.您可能希望export LC_ALL=C首先确保跨机器的一致结果.
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |