У меня есть сценарий, который выгружает данные из последовательного порта на терминал и жесткий диск. Вывод на терминал выглядит нормально, однако файл записывает ^ 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! ("\ C-M") после чтения.