Linux 在bash上从二进制文件中删除菱形问号

Linux 在bash上从二进制文件中删除菱形问号,linux,bash,Linux,Bash,我正在将串行端口的输入动态写入文件,如下所示: sudo cu-s 19200-l/dev/ttyUSB0>serialContent.json 但当我打开它时,它显示了很多钻石问号: �������������������������������������������������������������������������������������������������������������������������������������������������������������

我正在将串行端口的输入动态写入文件,如下所示: sudo cu-s 19200-l/dev/ttyUSB0>serialContent.json

但当我打开它时,它显示了很多钻石问号:

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*#*1*1*0*702442501*9*1*0*702442501##

我只想得到这一部分:*1*0*702442501*9*1*0*702442501##

当我用vim打开文件时,我得到了很多^@字符

我尝试使用sed的|[^@]|g'serialContent.json>serialContent2.json和sed替换字符|[�]||g'serialContent.json>serialContent2.json没有运气

这是我用这个命令得到的:

$ file -bi serialContent.json
application/octet-stream; charset=binary
如何删除这些标记?谢谢!

这是当您有不可打印的数据时显示的

要删除所有不可打印的字符,您可以通过管道将其传输到
tr-cd'[:print:]'

sudo cu -s 19200 -l /dev/ttyUSB0 | tr -cd '[:print:]' > serialContent.json
什么是可打印的取决于您的区域设置。您可能希望首先导出LC_ALL=C,以确保跨机器的结果一致。

这是当您有不可打印的数据时显示的结果

要删除所有不可打印的字符,您可以通过管道将其传输到
tr-cd'[:print:]'

sudo cu -s 19200 -l /dev/ttyUSB0 | tr -cd '[:print:]' > serialContent.json

什么是可打印的取决于您的区域设置。您可能希望
首先导出LC_ALL=C
,以确保跨机器的结果一致。

这些垃圾字符很可能是UTF8或Unicode噪声。这里的问题似乎提到了同样的问题。因为我们不知道串行连接的另一端有什么,无法知道字节是什么。用户想要的部分当然也不像JSON。这些垃圾字符很可能是UTF8或Unicode噪音。这里的这个问题似乎提到了同样的事情。因为我们不知道串行连接的另一端是什么,所以无法知道字节是什么。不是吗用户想要的部分当然也不象JSON。哇!非常非常非常好。谢谢,但是它对我不起作用,好像TR不考虑输出上的任何东西作为可打印的。你确定你的设备当时写了文本数据吗?如果你在文件上运行TR,如果你知道有一些数字SWOW,那会怎么样?非常,非常,非常好。汉克,但它对我来说不起作用,看起来TR不考虑输出上的任何东西作为可打印的。你确定你的设备写了文本数据吗?如果你在你知道有数字的文件上运行TR,你会怎么办?