【问题标题】:How to get rid the weird characters in the output of the minicom?如何摆脱 minicom 输出中的奇怪字符?
【发布时间】:2016-01-03 10:29:06
【问题描述】:

我正在使用以下命令记录来自 minicom(串行端口)的带有时间戳的数据:

minicom -D /dev/ttyUSB0 -b 9600 | ( while read line; do echo "$(date +%Y%m%d:%H%M%S), ${line}"; done )| tee -a out.txt

out.txt 文件中记录的数据是:

20151006:145139, [20;47H [21;1H1 some data
20151006:145140, [20;47H [21;1H2 some data
20151006:145141, [20;47H [21;1H3 some data
20151006:145142, [20;47H [21;1H4 some data
20151006:145143, [20;47H [21;1H5 some data
20151006:145144, [20;47H [21;1H6 some data

我认为奇怪的字符“[20;47H [21;1H”是回车和行长,我希望将输出保存在 out.txt 中,如下所示:

20151006:145139, 1 some data
20151006:145140, 2 some data
20151006:145141, 3 some data
20151006:145142, 4 some data
20151006:145143, 5 some data
20151006:145144, 6 some data

【问题讨论】:

    标签: serial-port timestamp special-characters tee


    【解决方案1】:

    在您的情况下,那些“奇怪的字符”是光标移动转义序列。

    http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html
    要么 http://wiki.bash-hackers.org/scripting/terminalcodes

    之所以显示它们,是因为您正在通过管道将输出发送到您的终端。

    如果您对这些字符不感兴趣,您可能需要使用--capturefile 参数。

    要添加日期,我会使用 fifo。

    mkfifo logFifo
    cat logFifo | while read line; do echo "$(date +%Y%m%d_%T.%N) | ${line}"; done >> out.txt &
    minicom -D /dev/ttyUSB0 -b 9600 --capturefile logFifo
    

    我只是更改了日期格式我如何使用它

    要停止,您需要退出 minicom 以使用 fgcat-command 转到前台,然后使用 CTRL-c 终止它 然后再次删除先进先出rm logFifo

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 2021-09-04
      相关资源
      最近更新 更多