原文:
周海漢 /譯
注:本文是簡譯。
dos/windows的純文字回車換行,即\r\n,記為crlf,16進製為0d0a,unix/linux是\n,16進製為0a, 記為lf, mac為\r, 0a。
下面主要講將\r\n 轉為unix的\n的方法。
$file dosfile.txt
dosfile.txt: ascii text, with crlf line terminators
$ file unixfile.txt
unixfile.txt: ascii text
$tr -d '\r'
< dosfile.txt > unixfile.txt
$vim dosfile.txt
...:set fileformat
=unix
可以用:set fileformat=dos來轉為dos格式。簡寫為ff。可以:help fileformat來檢視幫助。
set-buffer-file-encoding-system函式設定coding-system。m-x set-buffer-file-coding-system unix
$sed 's/.$//'
dosfile.txt > new_unixfile.txt
將unix轉dos格式
$ sed 's/$'
"/`echo -e "
\r"`/"
unixfile.txt > new_dosfile.txt
新版gnu sed:
$ sed 's/$/\r/'
unixfile.txt > new_dosfile.txt
$perl -p -e 's/\r$//'
< dosfile.txt > new_unixfile.txt
$ perl -p -e 's/$/\r/'
< unixfile.txt > new_dosfile.txt
$ awk ''
dosfile.txt > new_unixfile.txt
$ awk ''
unixfile.txt > new_dosfile.txt
$python -c "import sys; map(sys.stdout.write, (l[:-2] + '\n' for l in sys.stdin.readlines()))"
< dosfile.txt > new_unixfile.txt
還有其他的方法。對大檔案,建議用sed,awk,perl,python,不建議用vi,emacs.
vim 將檔案從dos格式轉換到unix格式
dos格式檔案傳輸到unix系統時,會在每行的結尾多乙個 m r 當然也有可能看不到。但是在vim的時候,會在下面顯示此檔案的格式,比如 dos.txt dos 120l,2532c 字樣,表示是乙個 dos 格式檔案,如果是mac系統的,會顯示 mac 因為檔案格式的原因有時會導致我們的unix程...
DOS文字格式轉Unix文字格式Python指令碼
網上一頓查,發現是dos文字格式與unix文字格式有差異的問題。好在ubuntu有dos2unix工具,可以把dos文字格式轉為unix文字格式,使用方法見 但是問題來了,核心原始碼千千萬,不能乙個乙個手動轉吧?所以寫了個python指令碼,這個指令碼的功能是,把當前目錄包括子目錄的所有檔案轉為un...
將dos格式檔案轉換為unix格式
在windows下換行符是 r n,表示回到行首並換到下一行 而unix系統中換行符是 n 這樣就存在乙個問題,在windows上的文件到了unix上可能就無法使用了 針對這個情況有幾種解決辦法 1.用vim修改文件的文字格式 fileformat set ff 檢視當前文字格式 set ff un...