我目前正在编写一个perl脚本,用于从日志文件中提取数据,并使用新文件中的数据创建语句。
在这个新文件中,我在这里提取和使用的一个特定数据是操作系统的版本。它显示Windows XP Service Pack 3^M
。我注意到只有在使用 vi 进行编辑时才显示此^M
。当我使用命令提示符或PuTTy more
正常显示文件的内容时,它只显示Windows XP Service Pack 3
。
任何人都可以解释或向我推荐有关^M
的原因的链接吗?我在Google搜索上找不到任何内容。我所知道的是它在Windows和Unix或Linux操作系统之间有一些关系。
答案 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)
vi
程序正在做正确的事情。 more
计划也是如此。它是一个寻呼机,正在隐藏它。
使用perl chomp()
函数,它应该清除任何EOL怪异。