快速业务通道

Win格式文件转Linux格式几招

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-09

在Linux下处理文件,有时会看到行尾有一堆的 ^M .这是Windows风格的换行符,“晕到死”两行之间用0d 0a分隔,让人很讨厌,但这是有历史原因的.

小故事:为什么换一行需要0d 0a呢?

话当年long long ago,那时候打印机是最古老的机械式,它打完一行之后,要做两件事:第一件事是让打印头从行尾移回到行头,那个移来移去的打印头,被人形象的称为“车”(carriage),“车”回到左边的过程,很自然的大家就称之为“回车”(Carriage Return).第二件事是把纸向上移一行,这个过程叫Line Feed.在ASCII码表中,0d是CR,0a是LF.

这就是Windows下0d 0a的来历,可能Linux认为这个很笨很落伍,一个Line Feed就能直接弄出一个新行来嘛,Linux下一直用0a来代表新行.

故事说完了,言回正题,在Linux发现了这些文件后,怎么处理呢?

一、乾坤大挪移:拷贝到Win,用UE、WINHEX等转成LINUX格式的文件.(靠,名字恁帅,但招式太土了!).

二、二两拔千金:用vim打开,在Normal模式下输入:%s/[Ctrl-v][Enter]//g,其中Ctrl-v是让回车键被认为是特殊字符,而不是命令结束.

三、一招定江山:有时候下载下来的一堆源文件都是这样的,总不能用vi一个一个打开吧,于是有了这招: dos2unix, 例子:需要把当前目录下所有源文件改成unix格式:dos2unix *.h *.cpp

补充一下:其实严格说来^M是0a,这里面具体技术细节就不探讨了.

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号