zoukankan      html  css  js  c++  java
  • linux和windows文本换行格式问题(^M)

    起源

    在windows中写的脚本执行完全没问题,代码一模一样,切换到linux中执行报错。利用命令 “vi/vim -b 文件名”查看文件发现每行结尾多了“^M”这样的结尾。

    根源

    通过查询得知,其问题根源是windows和linux换行符不同造成,二者区别如下表(外加了mac book)

      windows linux MacBook
    换行符
    ASCII 0x0d0a 0x0a 0x0d

      其中:

    • " "在ASCII中表示“换行(LF)”
    • " "在ASCII中表示“回车(CR)”

    解决

    注:主要在linux中解决由于文件结尾产生的错误

    1、确认代码无误

    2、利用命令“vi -b [filename] ”查看结尾是否多了“^M”

    3、文件格式转换

    • 方式一:dos2unix
      • 下载并安装dos2unix
      • 利用命令“dos2unix [filename]”完成转换
    • 方式二:替换(vim+正则表达式)
      • 利用命令“vim -b [filename]”打开该文件
      • 在命令模式下输入:“%s/^M//g”或者“g/^M/s/^M//”
      • 保存并退出

    注意:方式二中“^M”的输入方式:ctrl+v+m

    Hope you will sing a song for me!
  • 相关阅读:
    HZOJ 太阳神
    HZOJ Silhouette
    HZOJ Dash Speed
    HZOJ 巨神兵
    值得纪念的cspsAFO总结
    11月FLAG
    模板易错总结
    树 总结
    DP总结(优化等)
    代码低级错误总结
  • 原文地址:https://www.cnblogs.com/feer/p/9578059.html
Copyright © 2011-2022 走看看