• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            DOS文件轉(zhuǎn)換成UNIX文件格式詳解

            Posted on 2009-04-13 15:41 Prayer 閱讀(739) 評論(0)  編輯 收藏 引用 所屬分類: Shell
            dos格式文件傳輸?shù)絬nix系統(tǒng)時,會在每行的結(jié)尾多一個^M,當然也有可能看不到,但是在vi的時候,會在下面顯示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字樣,表示是一個[dos]格式文件,如果是MAC系統(tǒng)的,會顯示[MAC],因為文件格式的原因有時會導(dǎo)致我們的unix程序,或者shell程序出現(xiàn)錯誤,那么需要把這些dos文件格式轉(zhuǎn)換成unix格式,方法是
                vi  dos.txt       
                :set fileformat=unix
                :w                
              這樣文件就轉(zhuǎn)換成unix格式文件了, 一般在windows機器上編寫好了文件傳到unix下就可能會出現(xiàn)這樣的情況.
              用命令:set ff?  可以看到dos或unix的字樣.
              用:set ff=unix把它強制為unix格式,
            也可以用sed 這樣的工具來做:
              sed 's/^M//' filename > tmp_filename
              其中^M是同時Ctrl+V+M按出來的,表示回車。

            其它“怪招”:
            1. 使用vi
            vi dos_file.txt
            :%s/^M//g
            其中^M 必須是同時按 Ctrl+V+M ,表示回車。不是直接輸入 ^M ,那沒有用的, :-) 。
            2. 使用tr
            命令:tr -d "\015" dos_file.txt
            3. 使用perl
            cat dos_file.txt | perl -pe '~s/\r//g' > dos_file.txt
             
            【VIM】DOS、Mac 和 Unix 文件
            http://vimcdoc.sourceforge.net/doc/usr_23.html
            很久以前,老式的電傳打字機使用兩個字符來另起新行。一個字符把滑動架移回首位 (稱
            為回車,<CR>),另一個字符把紙上移一行 (稱為換行,<LF>)。
               當計算機問世以后,存儲器曾經(jīng)非常昂貴。有些人就認定沒必要用兩個字符來表示行
            尾。UNIX 開發(fā)者決定他們可以用 <Line Feed> 一個字符來表示行尾。Apple 開發(fā)者規(guī)定
            了用 <CR>。開發(fā) MS-DOS (以及微軟視窗) 的那些家伙則決定沿用老式的 <CR><LF>。
               那意味著,如果你試圖把一個文件從一種系統(tǒng)移到另一種系統(tǒng),那么你就有換行符方
            面的麻煩。Vim 編輯器自動識別不同文件格式,并且不勞你操心就把事情給辦妥了。
               選項 'fileformats' 包含各種各樣的格式,Vim 會在編輯一個新文件之初嘗試該選項
            定義的各種格式。例如,下面這個命令告訴 Vim 先嘗試用 UNIX 格式,其次,嘗試
            MS-DOS 格式:
                    :set fileformats=unix,dos
            編輯一個文件時,你將注意到 Vim 給出的信息消息報中包括文件所用的格式。如果你編
            輯的是本地格式文件 (你編輯的文件格式和所用系統(tǒng)一致),你就不會看到任何格式名。
            因此在 Unix 系統(tǒng)上編輯一個 Unix 格式文件不會產(chǎn)生任何關(guān)于格式的信息。但你若編輯
            一個 dos 文件,Vim 將這樣通知你:
                    "/tmp/test" [dos] 3L,71C
            如果是 Mac 文件,你會看到 "[mac]"。
               探測到的文件格式會被存入 'fileformat' 選項。執(zhí)行下面這個命令可以顯示你當前
            使用的文件格式:
                    :set fileformat?
            Vim 能使用的三種格式如下:
                    unix            <LF>
                    dos             <CR><LF>
                    mac             <CR>

            使 用 MAC 格 式
            在 Unix 上,<LF> 用于分行。但 <CR> 字符混在文本行中間也非罕見。這種情況碰巧經(jīng)
            常發(fā)生在 Vi (和 Vim) 腳本內(nèi)。
               在采用 <CR> 作為換行符的 Macintosh 上,<LF> 字符也有可能混在文本行中間。
               結(jié)果,很難 100% 肯定一個同時包含 <CR> 和 <LF> 的文件究竟是 Mac 還是 Unix 格
            式。所以,Vim 假設(shè)你一般不會在 Unix 上編輯一個 Mac 文件,所以干脆對這種文件格
            式不作檢查。果真要檢查此種格式,就把 "mac" 加入 'fileformats':
                    :set fileformats+=mac
            然后 Vim 就會猜測文件格式。要當心, Vim 可能會猜錯的。

            強 制 格 式
            如果你用往日美好的 Vi 來嘗試編輯一個采用 MS-DOS 格式的文件,你將會發(fā)現(xiàn)每一行的
            末尾有個 ^M 字符。(^M 就是 <CR>)。而 Vim 的自動探測功能就避免了這個問題。莫非
            你確實要按那個樣子來編輯這個文件嗎?那么你需要強制 Vim 忽略文件格式而使用你指
            定的格式:
                    :edit ++ff=unix file.txt
            字符串 "++" 告訴 Vim 后面跟的是選項名,以取代其默認值。但僅作用于這一個命令。
            "++ff" 用于 'fileformat' 選項。你也可以用 "++ff=mac" 或 "++ff=dos"。
               這樣用法并非適用于任意選項,目前 Vim 僅僅實現(xiàn)了 "++ff" 和 "++enc"。用全稱
            "++fileformat" 和 "++encoding" 也行。

            轉(zhuǎn) 換
            你可以用 'fileformat' 選項把文件從一種格式轉(zhuǎn)換為另一種。例如,假定你有個名為
            README.TXT 的 MS-DOS 文件,你要把它轉(zhuǎn)換成 UNIX 格式。首先編輯這個采用 MS-DOS
            格式的文件:
                    vim README.TXT
            Vim 將識別出那是一個 dos 格式文件。現(xiàn)在把這個文件的格式改為 UNIX:
                    :set fileformat=unix
                    :write
            這個文件就以 Unix 格式存盤了。

             

             原文地址 http://vimcdoc.sourceforge.net/doc/usr_23.html
            久久精品国产福利国产秒| 国内精品久久久久影院日本| 国产精品免费久久久久电影网| 国产精品久久久99| 久久天天躁夜夜躁狠狠| 国产午夜福利精品久久2021 | 少妇人妻综合久久中文字幕| 久久综合噜噜激激的五月天| 久久亚洲欧美日本精品| 亚洲午夜精品久久久久久浪潮| 久久国产精品成人影院| 四虎影视久久久免费| 91精品国产综合久久久久久| 色综合久久夜色精品国产| 久久综合久久综合九色| 久久午夜伦鲁片免费无码| 日本久久久久久久久久| 国产精品免费久久久久久久久| 午夜久久久久久禁播电影| 无码八A片人妻少妇久久| 久久AAAA片一区二区| 国产精品久久网| 久久线看观看精品香蕉国产| 久久亚洲AV成人出白浆无码国产| 久久人人爽人人爽人人片AV麻烦 | 午夜久久久久久禁播电影| 国产色综合久久无码有码| 少妇被又大又粗又爽毛片久久黑人 | 国产日产久久高清欧美一区| 日韩精品久久久久久免费| 亚洲av成人无码久久精品| av无码久久久久久不卡网站 | 久久久久亚洲AV无码网站| 无码人妻久久一区二区三区蜜桃| 女同久久| 精品国产乱码久久久久久呢| 国色天香久久久久久久小说| 综合久久国产九一剧情麻豆| 亚洲中文字幕无码久久综合网| 午夜精品久久影院蜜桃| 久久精品国产男包|