linux下文件内容多出^M的解决方法
2015-09-09 10:31
330 查看
昨天遇到一个问题,在配置文件中写的启动脚本,无论怎么调用都显示启动不成功,命令不正确
startup-shell=/.........../apache-tomcat-7.0.57/bin/catalina.sh run
把内容打印出来以后,发现后边结束部分,是“0xD,0xA”,也就是\r\n
原因是:
如果在Dos或Windows下使用编辑器编写一些文本文件,然后通过网络传送到Unix/Linux下使用vi打开,那么会看到一些^M符号. 因为Dos或Windows下的换行符是"\r\n",即对应的ASCII码十进制形式是: 13, 10. 而Unix/Linux下的换行符是"\n",即对应的ASCII码十进制形式是: 10. 因此,使用vi打开该文件所显示的特殊符号^M,其实其对应的ASCII码十进制形式是: 13 ; 对应的八进制形式
![](http://img.baidu.com/img/iknow/qb/select-search.png)
是
015; 对应的十六进制形式是 0x0D. 解决的方法很多,其中比较简单的一种是,在shell提示符下发出命令:tr -d "\015" < myfile.txt > myfile_new.txt那么可以把符号^M(即"\015")去掉,并另存为新文件myfile_new.txt.
用tr命令不能替换原文件,只能生成新文件
因此要用多个命令配合才能对文件过滤
cat 原文件| tr -d "^M" > 新文件
mv 新文件 原文件
或者:
sed 's/^M//原文件>新文件
mv 新文件 原文件
startup-shell=/.........../apache-tomcat-7.0.57/bin/catalina.sh run
把内容打印出来以后,发现后边结束部分,是“0xD,0xA”,也就是\r\n
原因是:
如果在Dos或Windows下使用编辑器编写一些文本文件,然后通过网络传送到Unix/Linux下使用vi打开,那么会看到一些^M符号. 因为Dos或Windows下的换行符是"\r\n",即对应的ASCII码十进制形式是: 13, 10. 而Unix/Linux下的换行符是"\n",即对应的ASCII码十进制形式是: 10. 因此,使用vi打开该文件所显示的特殊符号^M,其实其对应的ASCII码十进制形式是: 13 ; 对应的八进制形式
![](http://img.baidu.com/img/iknow/qb/select-search.png)
是
015; 对应的十六进制形式是 0x0D. 解决的方法很多,其中比较简单的一种是,在shell提示符下发出命令:tr -d "\015" < myfile.txt > myfile_new.txt那么可以把符号^M(即"\015")去掉,并另存为新文件myfile_new.txt.
用tr命令不能替换原文件,只能生成新文件
因此要用多个命令配合才能对文件过滤
cat 原文件| tr -d "^M" > 新文件
mv 新文件 原文件
或者:
sed 's/^M//原文件>新文件
mv 新文件 原文件
相关文章推荐
- linux库链接问题-找不到库
- linux sync
- linux du df命令清除不要的大文件
- 查看linux操作系统位数命令
- WordPress 3.9 Released – Install Using LAMP or LEMP on RHEL, CentOS & Fedora
- Linux 大页面使用与实现简介
- linux文件权限问题
- 一步完成linux安装jdk
- 一步完成linux安装jdk
- Linux战地日记——comm命令和diff命令
- Linux 网卡高级管理
- linux调度器(十)——调度器/proc信息解读
- linux调度器(九)——调度器的配置参数
- linux调度器(八)——实时调度与SMP
- linux调度器(七)——other cfs class api and functions
- linux调度器(六)——应用层理解CFS及组调度
- linux调度器(五)——进程管理与CFS
- linux调度器(四)——主调度器与CFS
- linux调度器(三)——周期性调度器与CFS
- linux调度器(二)——CFS模型