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查看相关设置

  • 相关阅读:
    [Leetcode][动态规划] 零钱兑换
    [Linux][函数]flock函数的用法
    [Leetcode][动态规划] 买卖股票的最佳时机IV
    [C++] 类的设计(2)——拷贝控制(1)
    [C++] C++中的常用库
    Python 爬虫学习笔记2
    Python 爬虫学习笔记1
    Tableau学习笔记:join
    可视化文摘:multifaceted data and story
    可视化学习笔记8:一般设计技巧
  • 原文地址:https://www.cnblogs.com/fanfan259/p/4562800.html
Copyright © 2011-2022 走看看