將dos格式換行文字轉為Unix格式

2021-08-25 02:09:53 字數 1486 閱讀 5455

原文:

周海漢 /譯

注:本文是簡譯。

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...