删除文件中的^M标志

有一个去重的任务 需要从Windows粘贴内容到Mac上,使用uniq命令发现去重未生效

使用vim打开这个文件,使用list视图查看,发现有的行结束包含一个^M,导致uniq判断相等未生效

:set list

 

^M从哪里来的?其实这设计到windows的换行问题,dos格式的换行符为 0D 0A(也就是<CR><LF>),<CR>其实就显示为^M。和UNIX LIKE的操作系统相比(换行仅有LF),多了一个CR,就是^M的来源。我们使用vim能够比较轻松地去除^M

:1,$ s/^M//g
^M 输入方法: ctrl+V ,ctrl+M

当然也可以使用sed处理

sed -i 's/^M//g' filename

处理完成之后,uniq操作恢复正常。

原文地址:https://www.cnblogs.com/yanximin/p/13039774.html