linux下文件内容多出^M的解决方法

来源:互联网 发布:php性能分析工具 编辑:程序博客网 时间:2024/06/06 04:57

昨天遇到一个问题,在配置文件中写的启动脚本,无论怎么调用都显示启动不成功,命令不正确

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 ; 对应的八进制形式搜索是 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 新文件 原文件




0 0
原创粉丝点击