^ M落后于操作系统版本?

时间:2015-06-11 08:32:01

标签: linux windows unix operating-system

我目前正在编写一个perl脚本,用于从日志文件中提取数据,并使用新文件中的数据创建语句。

在这个新文件中,我在这里提取和使用的一个特定数据是操作系统的版本。它显示Windows XP Service Pack 3^M。我注意到只有在使用 vi 进行编辑时才显示此^M。当我使用命令提示符或PuTTy more正常显示文件的内容时,它只显示Windows XP Service Pack 3

任何人都可以解释或向我推荐有关^M的原因的链接吗?我在Google搜索上找不到任何内容。我所知道的是它在Windows和Unix或Linux操作系统之间有一些关系。

2 个答案:

答案 0 :(得分:2)

vim和familiars(您可能实际上正在使用^M)将返回字符显示为# config/fluent/fluent.rb source { type :forward } ['access','debug','error'].each do|tag| if tag == 'access' filter("#{tag}.app.**") { type :record_transformer enable_ruby record { hoge '${hoge ? hoge : "-"}' fuga.piyo '${fuga ? fuga : "-"}' } } end ....... 。由于unix和windows中的行结尾不同,因此显示的不是实际的换行符。

答案 1 :(得分:1)

DOS和Unix(以及Mac?)有不同的“换行符”约定。 vi程序正在做正确的事情。 more计划也是如此。它是一个寻呼机,正在隐藏它。

使用perl chomp()函数,它应该清除任何EOL怪异。