Ruby中的系统新行分隔符

Lav*_*let 4 ruby newline

如何在Ruby中确定OS(LF,CR/LF或其他)使用的新行分隔符?

Zab*_*bba 8

不确定是否有直接解决方案来获取基于操作系统的换行符类型,但是有一个$/变量保存了"输入记录分隔符".默认情况下,这将是"\n".(这里的文件)

您可以检测操作系统,然后设置$/为"正确"值.

检测操作系统:

puts RUBY_PLATFORM                  # => 'i386-linux'
require 'rbconfig'
puts Config::CONFIG['target_cpu']   # => 'i386'
puts Config::CONFIG['target_os']    # => 'linux'
puts Config::CONFIG['host_cpu']     # => 'i686'
puts Config::CONFIG['host_os']      # => 'linux-gnu'
Run Code Online (Sandbox Code Playgroud)

还要记住,在读取文件时,它们可能混合使用各种行分隔符 - 例如,如果在Windows和Linux中都编辑了文本文件.因此,如果您正在处理文件,请不要仅依赖于"OS line seperator".