zoukankan      html  css  js  c++  java
  • DOS与Linux的换行字符

    一、vim打开window下的文件出现 ^M

    首先理解,dos(windows)下建立的文件的换行是  ^M$ (CRLF) ,而在Linux下面,仅仅是以 $ (LF) 来做断行符号;

    (^M$ 其实没有 ,只不过,编辑器默认会使其变为特殊符号,所以加了反斜线)

    这就造成了,vim打开dos文件时,每行末尾出现^M的符号

    而这个符号影响很大,如果是一个 shell script 脚本,可造成 “程序无法执行”的状态

    那么如何解决呢?

    二、避免每行出现^M以及解决办法

    1. 可设置所使用的编辑器的断行

      如 sublime text 中,选项:"default_line_ending": "system",

      表示,随系统的不同而变化,windows下就是CRLF,unix就是LF

    2. 使用命令替换符号

      vim命令行状态下输入:

      :%s/[Ctrl-v][Enter]//g

      Ctrl-v的作用是,使得接着输入的回车键被认为是一个特殊字符,而不是vim命令的结束

    3. 使用dos2unix命令

      如:dos2unix -k -n test.txt test.new.txt

                -k ,表示 保留该文件原本的 mtime 时间格式(不更新文件上次内容经过修订的时间)

                -n ,表示 保留原本文件,将转换后的内容输出到新文件中

          注意:-k -n  不能连写成 -kn ,否则执行不成功;

           当然还有相应的 unix2dos 命令,用于两者的相互转换

           具体 可通过 dos2unix --help查看相关设置

  • 相关阅读:
    python之路-javascript
    python之路-css
    python之路-初识前端
    python之路-线程
    python之路-socket
    base64 convert to file
    base64 json
    centos7 hostname
    geoip2 domain
    佛教六度
  • 原文地址:https://www.cnblogs.com/fanfan259/p/4562800.html
Copyright © 2011-2022 走看看