歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Win格式文件轉Linux格式幾招

在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,這裡面具體技術細節就不探討了

Copyright © Linux教程網 All Rights Reserved