我有一个脚本可以将数据从串口转储到终端和硬盘。到终端的输出看起来很好,但是文件在写入一个^ M之后每一行都会产生一个额外的换行符。从文件输出中删除额外的换行符
违规代码:
# run and dump to file.
loop {
# output data to log file.
data = sp.read
data.delete!("\C-M") # Removes escape character.
if(data != "")
puts data
File.open($log_file, 'a') { |f| f.write(data) }
end
}
输出示例: 在终端:
1
2
3
在文件
1
2
3
编辑:解决方案是运行data.delete !(“\ CM”)在读取后。
不起作用。下面是一个评论,额外的换行符是由^ M序列创建的。 Chomp删除最终的换行符,但对接收到的数据中的其他换行符不做任何处理。 – Kenneth