![如何从文件中删除“^M”?](https://linux22.com/image/82231/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%A0%E9%99%A4%E2%80%9C%5EM%E2%80%9D%EF%BC%9F%20.png)
我有两个“相同”的文件,我在 diff 中进行比较,它显示每一行都是不同的,在查看该文件后,我发现其中一个文件位于^M
每一行的末尾。我该如何删除这个?我尝试了这个sed
命令:
sed -i '' -E 's/^M//g'
这个tr
命令:(即使它有效,我也不会想要,因为我想进行就地编辑)
tr -d '^M'
和这个perl
命令:
perl -pi -e 's/^M//g'
但这些都没有改变内容。
答案1
前段时间我发现了这些功能肯罗布的 .vimrc在他的点文件存储库:
" Removes the ^M character from the end of every line
function! RemoveM()
:%s/^M$//ge
endfunction
" Replaces the ^M character with a carraige return native to the system
function! ReplaceM()
:%s/^M/\r/ge
endfunction
所以你可以很容易地采用这些函数并使用 Vim 来处理这些^M
字符。