有一个去重的任务 需要从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操作恢复正常。