zoukankan      html  css  js  c++  java
  • 在Linux或者Unix下打开,每一行都会出多出^M这样的字符

    Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同。

      在Linux下查看文件格式:

      # file filename

      # 20140304110001.csv: ISO-8859 text //不带有^M

      # 20140304110002.csv: ISO-8859 text, with CRLF line terminators //带有^M

      Windows下处理的文件就带有CRLF行终止符。

      以下有几种处理方式:

      1. vi命令行模式下输入

      :%s/^M$//g # 去掉行尾的^M。

      :%s/^M//g # 去掉所有的^M。

      :%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。

      :%s/^M/ /g # 将^M替换成回车。

      2. 使用sed命令。和vi的用法相似:

      # sed -e ‘s/^M/ /g’filename

      3. 使用命令

      使用dos2unix命令,一般的*nix发布版本都带有这个小工具,即Windows - *nix文件转换。

      格式: dos2unix filename

      转换多个文件

      格式:dos2unix file1 file2 file3 …。

      上面转换文件的时候都会修改原来的文件,使用 -k参数,或者 -n参数可以不改变文件属性。

      格式:dos2unix -n oldfile newfile //新建一个文件,保持源文件不变

      格式:dos2unix -k filename //保持文件时间戳不变

      同样工具提供了*nix - windows文件格式转换命令:unix2dos,参数同dos2unix。

      *注:“^M”,需要使用Ctrl + V + Ctrl + M键入,而不是数字6上面的^+字母M。

      上面就是Linux下处理文件内容中的^M字符的介绍了,如果^M字符影响到了你的阅读,你想将其去掉的话,只需按照本文介绍的方法,就能将^M字符轻松去除了。

  • 相关阅读:
    智能移动机器人背后蕴含的技术——激光雷达
    Kalman Filters
    Fiddler抓HttpClient的包
    VSCode开发WebApi EFCore的坑
    WPF之小米Logo超圆角的实现
    windows react打包发布
    jenkins in docker踩坑汇总
    Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available
    【Linux知识点】CentOS7 更换阿里云源
    【Golang 报错】exec gcc executable file not found in %PATH%
  • 原文地址:https://www.cnblogs.com/clphp/p/5504093.html
Copyright © 2011-2022 走看看