暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【linux操作系统】linux处理文本,出现文本行末出现^M符号

原创 龙镇君 2023-03-20
5234

在日常运维linux操作系统过程中,linix系统文件行末尾出现^M,对于不同系统,有不同的换行符号:

在windows下的文本文件的每一行结尾,都有一个回车(’\n’)和换行(’\r’)

在linux下的文本文件的每一行结尾,只有一个回车(’\n’);

在Mac下的文本文件的每一行结尾,只有一个换行(’\r’);

因此:^M出现的原因: 在linux下打开windows编辑过的文件,就会在行末尾显示^M;

对此的解决办法就是通过字符替换,将^M换掉,具体方法如下:

利用vim打开文件,然后输入vim 命令 %s/^M$//g,进行全文件查找替换。


实验:

在windows系统下创建了一个存放服务日志路径的文本文件,准备放到linux下读取相关日志路径并在服务器创建相关的映射目录。但是在测试的时候,发现每个文件路径后面都有一个^M符号。
提示类似于下面:

# 执行脚本所展示的提示信息
mylogs^M 
dnakjfrhoklhn^M 

原因
实际上,这是由于不同的操作系统,换行符号不同导致的差异。
1) 在windows下的文本文件的每一行结尾,都有一个回车(’\n’)和换行(’\r’);
2) 在linux下的文本文件的每一行结尾,只有一个回车(’\n’);
3) 在Mac下的文本文件的每一行结尾,只有一个换行(’\r’);
通过上面的描述,我们知道,提示信息中的“^M”符号,实际上由于"\r"导致的。

解决
因此我们将源文件中的"\r"去除掉即可。使用命令如下:

sed -i "s/\r//g" service_logs_dir

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论