Windows與Linux換行符差別所引起的問(wèn)題的解決方法
windows和linux下的換行符是不同的。一般操作系統(tǒng)上的運(yùn)行庫(kù)會(huì)自動(dòng)決定文本文件的換行格式. 如一個(gè)程序在windows上運(yùn)行就生成CR/LF換行格式的文本文件,而在linux上運(yùn)行就生成LF格式換行的文本文件. 在一個(gè)平臺(tái)上使用另一種換行符的文件文件可能會(huì)帶來(lái)意想不到的問(wèn)題, 特別是在編輯程序代碼時(shí). 有時(shí)候代碼在編輯器中顯示正常, 但在編輯時(shí)卻會(huì)因?yàn)閾Q行符問(wèn)題而出錯(cuò). 很多文本/代碼編輯器帶有換行符轉(zhuǎn)換功能, 使用這個(gè)功能可以將文本文件中的換行符在不同格式單互換.
在不同平臺(tái)間使用FTP軟件傳送文件時(shí), 在ascii文本模式傳輸模式下, 一些FTP客戶(hù)端程序會(huì)自動(dòng)對(duì)換行格式進(jìn)行轉(zhuǎn)換. 經(jīng)過(guò)這種傳輸?shù)奈募止?jié)數(shù)可能會(huì)發(fā)生變化. 如果你不想ftp修改原文件, 可以使用bin模式(二進(jìn)制模式)傳輸文本.
解決:在linux下用dos2unix filename轉(zhuǎn)換一次之后,成功解決問(wèn)題。
dos2unix命令用來(lái)將DOS格式的文本文件轉(zhuǎn)換成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作為斷行標(biāo)志的,表示成十六進(jìn)制就是0D 0A。而Unix下的文本文件是以\n作為斷行標(biāo)志的,表示成十六進(jìn)制就是 0A。DOS格式的文本文件在Linux底下,用較低版本的vi打開(kāi)時(shí)行尾會(huì)顯示^M,而且很多命令都無(wú)法很好的處理這種格式的文件,如果是個(gè)shell 腳本,。而Unix格式的文本文件在Windows下用Notepad打開(kāi)時(shí)會(huì)拼在一起顯示。因此產(chǎn)生了兩種格式文件相互轉(zhuǎn)換的需求,對(duì)應(yīng)的將UNIX格 式文本文件轉(zhuǎn)成成DOS格式的是unix2dos命令。
常用參數(shù):
將DOS格式文本文件轉(zhuǎn)換成Unix格式,最簡(jiǎn)單的用法就是dos2unix直接跟上文件名。
格式:dos2unix file
如果一次轉(zhuǎn)換多個(gè)文件,把這些文件名直接跟在dos2unix之后。(注:也可以加上-o參數(shù),也可以不加,效果一樣)
格式:dos2unix file1 file2 file3
格式:dos2unix -o file1 file2 file3
上面在轉(zhuǎn)換時(shí),都會(huì)直接在原來(lái)的文件上修改,如果想把轉(zhuǎn)換的結(jié)果保存在別的文件,而源文件不變,則可以使用-n參數(shù)。
格式:dos2unix oldfile newfile
如果要保持文件時(shí)間戳不變,加上-k參數(shù)。所以上面幾條命令都是可以加上-k參數(shù)來(lái)保持文件時(shí)間戳的。
格式:dos2unix -k file
格式:dos2unix -k file1 file2 file3
格式:dos2unix -k -o file1 file2 file3
格式:dos2unix -k -n oldfile newfile
注:unix2dos命令的使用方式與dos2unix命令的類(lèi)似。
cat -v可以看到文件中的非打印字符,而不帶-v參數(shù)的cat命令不行。
hexdump -C可以看到文件每個(gè)字節(jié)的十六進(jìn)制表示。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。