zoukankan      html  css  js  c++  java
  • Linux下删除^M文件的方法

    实践:

    1)

    使用dos2unix命令:dos2unix filename

     Linux下去掉^M的四种方法_linux shell_脚本之家 https://www.jb51.net/article/142224.htm

    第一种方法:

    cat -A filename 就可以看到windows下的断元字符 ^M

    要去除他,最简单用下面的命令:

    dos2unix filename

    第二种方法:

    1
    2
    sed -i ‘s/^M//g' filename
    #注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M

    第三种方法: 

    1
    2
    3
    #vi filename
    :1,$ s/^M//g
    ^M 输入方法: ctrl+V ,ctrl+M

    第四种方法:

    1
    2
    #cat filename |tr -d ‘/r' > newfile
    #^M 可用 /r 代替

    Linux下删除^M文件的方法 - 简书 https://www.jianshu.com/p/d039ab756181

    Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。

    1. 问题描述:

    在windows下写的文件上传到Linux服务器之后,文件中多出了很多^M符号

    2. 原因分析:

    Linux和windows的文本中,对换行方式处理不同:

    '\n' 10 换行(newline)
    '\r' 13 回车(return
    系统换行方式
    Windows 结尾是<换行><回车>,即“\n\r”
    linux/unix 结尾是<换行>,即 “\n”
    Mac系统 结尾是<回车>,即“\r”

    所以windows下的文件,在Linux中会有^M,即回车符号
    参考:回车符和换行符的区别

    3.解决办法:

    解决办法主要以下几个方案:
    注意: ^M要用Ctrl+v,<回车>代替

    命令
    1. vim 中使用替换命令::%s/^M//g
    2. 使用sed:sed 's/^M//' filename > newfile
    3. 使用tr删除“\r”:tr -d "\r" filename
    4. 使用dos2unix命令:dos2unix filename
    5. 在vim下::set ff = unix(把dos文件类型变为unix)

    此外,也可以使用sed把win文档转化为Linux下文档:
    find . -type f print0 | xargs -0 sed -i 's/^M$//'
    其中实践中试验了第一种方法,举例说明该命令的含义:
    将文件中的 a 全部替换为b,可以使用:%s/a/b/g
    参考:
    去掉Linux中删除^M符号的方法
    vim如何去掉^M字符

    Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。

    1. 问题描述:

    在windows下写的文件上传到Linux服务器之后,文件中多出了很多^M符号

    2. 原因分析:

    Linux和windows的文本中,对换行方式处理不同:

    '\n' 10 换行(newline)
    '\r' 13 回车(return
    系统换行方式
    Windows 结尾是<换行><回车>,即“\n\r”
    linux/unix 结尾是<换行>,即 “\n”
    Mac系统 结尾是<回车>,即“\r”

    所以windows下的文件,在Linux中会有^M,即回车符号
    参考:回车符和换行符的区别

    3.解决办法:

    解决办法主要以下几个方案:
    注意: ^M要用Ctrl+v,<回车>代替

    命令
    1. vim 中使用替换命令::%s/^M//g
    2. 使用sed:sed 's/^M//' filename > newfile
    3. 使用tr删除“\r”:tr -d "\r" filename
    4. 使用dos2unix命令:dos2unix filename
    5. 在vim下::set ff = unix(把dos文件类型变为unix)

    此外,也可以使用sed把win文档转化为Linux下文档:
    find . -type f print0 | xargs -0 sed -i 's/^M$//'
    其中实践中试验了第一种方法,举例说明该命令的含义:
    将文件中的 a 全部替换为b,可以使用:%s/a/b/g
    参考:
    去掉Linux中删除^M符号的方法
    vim如何去掉^M字符



    作者:fwei
    链接:https://www.jianshu.com/p/d039ab756181
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    第一种方法:

    cat -A filename 就可以看到windows下的断元字符 ^M

    要去除他,最简单用下面的命令:

    dos2unix filename

    第二种方法:

    1
    2
    sed -i ‘s/^M//g' filename
    #注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M

    第三种方法: 

    1
    2
    3
    #vi filename
    :1,$ s/^M//g
    ^M 输入方法: ctrl+V ,ctrl+M

    第四种方法:

    1
    2
    #cat filename |tr -d ‘/r' > newfile
    #^M 可用 /r 代替
  • 相关阅读:
    EXCEL每次打开文件都会出现一个空白sheet1窗口
    Python基础知识之面向对象编程
    Python基础知识之模块详解
    Python基础知识之正则表达式re模块
    Python基础知识之xml模块
    Python基础知识之json&pickle模块
    Python基础知识之装饰器
    VUE-02
    VUE
    虚拟环境的搭建
  • 原文地址:https://www.cnblogs.com/rsapaper/p/15697099.html
Copyright © 2011-2022 走看看