正常情况如果 vim 只是发现行尾有^M,那么直接使用 dos2unix 就可以了
dos2unix yourfile.txt
但是有些文本只有 ^M 没有换行。这是因为一般换行都是 "0x0d0x0a",0x0d 是回车键,0x0a 是换行。只有 ^M 没有换行,是因为只有 0x0d没有0x0a,这时可以用 sed 替换
sed -i "s/\x0D/\x0A/g" yourfile.txt