博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
除去文件中显示的^M符号
阅读量:6149 次
发布时间:2019-06-21

本文共 583 字,大约阅读时间需要 1 分钟。

除去文件中显示的^M符号

背景

在windows下编辑的文件,在Linux下使用vim打开有时会出现^M符号。

原理

本节内容参考

vim被配置为fileformat=unix,而你打开的文件都是dos格式的。unix格式的换行符为0A(ascii码)也就是<LF>,dos格式的换行符为 0D 0A(也就是<CR><LF>),<CR>其实就显示为^M。

回想计算机的史前史,那时的打字机使用两个字符来开始一个新行。首先是一个字符命令使打印头移回开始位置(回车,<CR>),然后另一个字符命令控制向前进纸一行(进纸,<LF>).
在计算机诞生之初,存储设备十分昂贵。于是有人就提出没有必要用两个字符来表示一行的结束:

  • UNIX一族决定只用进纸一个字符<LF>来表示行尾。
  • 来自苹果mac阵营的人则把回车<CR>作为换行的标准。
  • MS-DOS(和微软的Windows)仍然决定沿用古老的回车换行<CR><LF>传统。

这也意味着如果把文件从一个系统移到另一个不同的系统,你就会遇到与换行相关的问题.

解决方法

今天无意中发现去除^M的好办法:

  • 指定文件名: sed -i "s/\s*$//g" filename
  • 当前目录下所有文件: sed -i "s/\s*$//g" `ls`

转载于:https://blog.51cto.com/iamokay/2173571

你可能感兴趣的文章
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
Android实现自定义位置无标题Dialog
查看>>
416. Partition Equal Subset Sum
查看>>
Django之FBV与CBV
查看>>
Vue之项目搭建
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
Data Wrangling文摘:Non-tidy-data
查看>>
while()
查看>>
常用限制input的方法
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
JAVA入门到精通-第86讲-半双工/全双工
查看>>
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>