去除文本文件中的^M

linux 、windows 、mac对文件的保存处理都不一样。体现在回车和换行这两个概念上。
这两个词来自于早先的打字机。虽然没有看过实物,但是从以前战争片中打字员每打完一行,就来两个动作。回车:就是在没打印完一行,就把打印头定位到纸的左边。由于还在刚才写的那一行,需要用换行,定位到下一行。
到了计算机出现后,“换行”在linux中表示为“\n”,windows表示为”\n\r“,mac表示为”\r“。所以在linux,mac看windows中保存的文本文件每行后面都会有 “^M”,而在windows下看linux和mac保存的文本文件,就都会跑到一行中,而且会多一个黑方框的符号。
用16进制表示回车为 0x0d ,即表示 \r, carrige return,回车。
0x0a,表示 \n, new line,换行。
在linux下可以用xxd命令查看文本文件的16进制的形式。
linux中有两个命令:dos2unix和unix2dos。可以转换两种文件格式。
用tr:
DOS->UNIX:tr -d ‘\r’ < dosfile > unixfile

随机文章:

3 Responses to “去除文本文件中的^M”

  1. 东海堂 says:

    谢谢,不过没过这种情况。

发表评论