檔案格式相互轉換(dos 和unix )

2021-09-01 10:55:13 字數 2467 閱讀 8852

dos格式檔案傳輸到unix系統時,會在每行的結尾多乙個^m,當然也有可能看不到,但是在vi的時候,會在下面顯示此檔案的格式,比如 "dos.txt" [dos] 120l, 2532c 字樣,表示是乙個[dos]格式檔案,如果是mac系統的,會顯示[mac],因為檔案格式的原因有時會導致我們的unix程式,或者shell程式出現錯誤,那麼需要把這些dos檔案格式轉換成unix格式,方法是 vi dos.txt

:set fileformat=unix

:w   這樣檔案就轉換成unix格式檔案了, 一般在windows機器上編寫好了檔案傳到unix下就可能會出現這樣的情況.  用命令: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.txt3. 使用perlcat dos_file.txt | perl -pe '~s/\r//g' > dos_file.txt 【vim】dos、mac 和 unix 檔案

很久以前,老式的電傳打字機使用兩個字元來另起新行。乙個字元把滑動架移回首位 (稱

為回車,),另乙個字元把紙上移一行 (稱為換行,)。

當計算機問世以後,儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示行

了用 。開發 ms-dos (以及微軟視窗) 的那些傢伙則決定沿用老式的 。

那意味著,如果你試圖把乙個檔案從一種系統移到另一種系統,那麼你就有換行符方

面的麻煩。vim 編輯器自動識別不同檔案格式,並且不勞你操心就把事情給辦妥了。

選項 'fileformats' 包含各種各樣的格式,vim 會在編輯乙個新檔案之初嘗試該選項

定義的各種格式。例如,下面這個命令告訴 vim 先嘗試用 unix 格式,其次,嘗試

ms-dos 格式: :set fileformats=unix,dos編輯乙個檔案時,你將注意到 vim 給出的資訊訊息報中包括檔案所用的格式。如果你編

輯的是本地格式檔案 (你編輯的檔案格式和所用系統一致),你就不會看到任何格式名。

因此在 unix 系統上編輯乙個 unix 格式檔案不會產生任何關於格式的資訊。但你若編輯

乙個 dos 檔案,vim 將這樣通知你: "/tmp/test" [dos] 3l,71c 如果是 mac 檔案,你會看到 "[mac]"。

探測到的檔案格式會被存入 'fileformat' 選項。執行下面這個命令可以顯示你當前

使用的檔案格式: :set fileformat?vim 能使用的三種格式如下: unix

dos

mac

使 用 mac 格 式在 unix 上,用於分行。但 字元混在文字行中間也非罕見。這種情況碰巧經

常發生在 vi (和 vim) 指令碼內。

在採用 作為換行符的 macintosh 上,字元也有可能混在文字行中間。

結果,很難 100% 肯定乙個同時包含 和 的檔案究竟是 mac 還是 unix 格

式。所以,vim 假設你一般不會在 unix 上編輯乙個 mac 檔案,所以乾脆對這種檔案格

式不作檢查。果真要檢查此種格式,就把 "mac" 加入 'fileformats': :set fileformats+=mac然後 vim 就會猜測檔案格式。要當心, vim 可能會猜錯的。

強 制 格 式如果你用往日美好的 vi 來嘗試編輯乙個採用 ms-dos 格式的檔案,你將會發現每一行的

末尾有個 ^m 字元。(^m 就是 )。而 vim 的自動探測功能就避免了這個問題。莫非

你確實要按那個樣子來編輯這個檔案嗎?那麼你需要強制 vim 忽略檔案格式而使用你指

定的格式: :edit ++ff=unix file.txt字串 "++" 告訴 vim 後面跟的是選項名,以取代其預設值。但僅作用於這乙個命令。

"++ff" 用於 'fileformat' 選項。你也可以用 "++ff=mac" 或 "++ff=dos"。

這樣用法並非適用於任意選項,目前 vim 僅僅實現了 "++ff" 和 "++enc"。用全稱

"++fileformat" 和 "++encoding" 也行。

轉 換你可以用 'fileformat' 選項把檔案從一種格式轉換為另一種。例如,假定你有個名為

readme.txt 的 ms-dos 檔案,你要把它轉換成 unix 格式。首先編輯這個採用 ms-dos

格式的檔案:

vim readme.txtvim 將識別出那是乙個 dos 格式檔案。現在把這個檔案的格式改為 unix: :set fileformat=unix

:write這個檔案就以 unix 格式存檔了。

DOS檔案格式 與 UNIX檔案格式 轉換

這裡闡述兩種方法 1.使用vim的方法 在vim下 使用如下命令 set fileformat unix 就可轉換成 unix 檔案格式,也可使用其縮寫形式命令 set ff unix 直接輸入命令 set fileformat 或 set ff 還可查詢當前的命令格式。2.使用linux命令工具 ...

日期格式相互轉換

將long型別的時間戳轉換為日期格式apr 02 2020 18 00 00 param date return public static string dateformatmmm date date 時間戳轉換成日期格式字串 date 1594348830000 0000 param secon...

dos檔案轉換成unix檔案格式

dos檔案轉換成unix檔案格式 摘自 ahsunlong的部落格 dos格式檔案傳輸到unix系統時,會在每行的結尾多乙個 m,當然也有可能看不到,但是在vi的時候,會在下面顯示此檔案的格式,比如 dos.txt dos 120l,2532c 字樣,表示是乙個 dos 格式檔案,如果是mac系統的...