**dos檔案轉換成unix檔案格式詳解
由windows平台遷移到unix系統下容易引發的問題:linux執行指令碼卻提示no such file or directory
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.txt
3. 使用perl
cat dos_file.txt | perl -pe '~s/\r//g' > dos_file.txt
【vim】dos、mac 和 unix 檔案
: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.txt
vim 將識別出那是乙個 dos 格式檔案。現在把這個檔案的格式改為 unix:
:set fileformat=unix
:write
這個檔案就以 unix 格式存檔了。
dos檔案轉換成unix檔案格式
dos檔案轉換成unix檔案格式 摘自 ahsunlong的部落格 dos格式檔案傳輸到unix系統時,會在每行的結尾多乙個 m,當然也有可能看不到,但是在vi的時候,會在下面顯示此檔案的格式,比如 dos.txt dos 120l,2532c 字樣,表示是乙個 dos 格式檔案,如果是mac系統的...
dos檔案批量轉換成unix檔案
對於經常在windows環境下和linux環境同時使用的檔案 如在windows系統下編寫,在linux環境下編譯的檔案 常常存在這樣的問題 由於兩種系統的格式檔案格式不同,導致程式出現不期望的問題,這時我們可以使用格式轉換命令 dos2unix unix2dos對檔案進行格式轉換。但是,如果我們處...
python將CSV檔案轉換成JSON格式的檔案
json引數介紹 ensure ascii false 中文編碼問題 sort keys false 將資料根據keys的值進行排序 indent 4 應該是乙個非負的整型,如果是0,或者為空,則一行顯示資料,否則會換行且 按照indent的數量顯示前面的空白,這樣列印出來的json資料也叫pret...