不确定是否有直接解决方案来获取基于操作系统的换行符类型,但是有一个$/变量保存了"输入记录分隔符".默认情况下,这将是"\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".