^M 落后于操作系统版本?
^M behind operating system version?
我目前正在编写一个 perl 脚本来从日志文件中提取数据并使用新文件中的数据创建语句。
在这个新文件中,我提取并在此处使用的一个特定数据是操作系统的版本。它显示 Windows XP Service Pack 3^M
。我注意到此 ^M
仅在我使用 vi 编辑时出现。当我正常使用命令提示符或带 more
的 PuTTy 显示文件内容时,它只显示 Windows XP Service Pack 3
.
任何人都可以向我解释或参考 link 为什么会有 ^M
?我在 Google 搜索中没有找到任何内容。我所知道的是,它与 Windows 和 Unix 或 Linux 操作系统有关。
vi
和魔宠(您可能实际上使用的是 vim
)将 return 字符显示为 ^M
。由于 unix 和 windows 中的换行符不同,因此显示的是此换行符而不是实际的换行符。
DOS 和 Unix(和 Mac?)有不同的 "newline" 约定。 vi
程序正在做正确的事情。 more
程序也是。它是一个寻呼机,正在向您隐藏它。
使用 perl chomp()
函数,它应该可以清除任何 EOL 异常。
我目前正在编写一个 perl 脚本来从日志文件中提取数据并使用新文件中的数据创建语句。
在这个新文件中,我提取并在此处使用的一个特定数据是操作系统的版本。它显示 Windows XP Service Pack 3^M
。我注意到此 ^M
仅在我使用 vi 编辑时出现。当我正常使用命令提示符或带 more
的 PuTTy 显示文件内容时,它只显示 Windows XP Service Pack 3
.
任何人都可以向我解释或参考 link 为什么会有 ^M
?我在 Google 搜索中没有找到任何内容。我所知道的是,它与 Windows 和 Unix 或 Linux 操作系统有关。
vi
和魔宠(您可能实际上使用的是 vim
)将 return 字符显示为 ^M
。由于 unix 和 windows 中的换行符不同,因此显示的是此换行符而不是实际的换行符。
DOS 和 Unix(和 Mac?)有不同的 "newline" 约定。 vi
程序正在做正确的事情。 more
程序也是。它是一个寻呼机,正在向您隐藏它。
使用 perl chomp()
函数,它应该可以清除任何 EOL 异常。