您的位置:首页 > 运维架构 > Linux

Linux文本文件中^M符号的处理

2013-12-17 13:46 239 查看
在linux下,有时我们用vi打开一些windows下编辑过的文本文件,我们会发现文件的每行(或某些行)结尾都会有一个^M符号(不限于此,有时其他程序生成的文件也可能有此符号),这可能是因为dos下的编辑器和linux下的编辑器对文件行末的回车符处理不一致所致,也可能是生成文本文件的程序编写有问题所致。

对于回车符的定义:
windows:0D0A
unix/linux: 0A
MAC: 0D

比较快捷的去除这些符号的方法有这么几种:

1、是用vi的命令:
使用vi打开文本文件
vi dos.txt
命令模式下输入
:set fileformat=unix
:w
注:该方法不能保证一定有效。

2、vi下使用正则表达式替换
g/^M/s/^M//
或者
%s/^M//g

3、使用sed 工具
sed ’s/^M//’ filename > tmp_filename

4、既然window下的回车符多了‘ ’,那么当然通过删除‘ ’ ,也可以实现:
tr -d " "

5、最后一个方法是最便捷也最有效的方法
在终端下输入命令:
$ dos2unix filename
直接就可以转换成unix格式!
本文出自 “第二次启航” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: