Linux認(rèn)證:Linux服務(wù)器上進(jìn)行換行符轉(zhuǎn)換
(一)
最近在學(xué)習(xí)shell編程,可是在《Linux程序設(shè)計(jì)》指定的網(wǎng)站上下載了源碼,使用的時(shí)候卻一直出問題。提示:”bash: ./here1:/bin/sh^M:損壞的解釋器: 沒有該文件或目錄“。之后用vi編輯器打開文件,發(fā)覺每一行的***有淺藍(lán)色的字符'^M'。才知道了問題所在
其實(shí)并沒什么奇怪的,出現(xiàn)這種錯(cuò)誤的原因是因?yàn)長inux和Windows文本文件的行結(jié)束標(biāo)志不同。在Linux中,文本文件用"\n"(0a)表示回車換行,而Windows用"\r\n"(0d 0a)表示回車換行。所以在Linux中使用Windows的文本文件常常會(huì)出現(xiàn)錯(cuò)誤。為了避免這種錯(cuò)誤,Linux提供了兩種文本格式相互轉(zhuǎn)化的命令:dos2unix和unix2dos,dos2unix把"\r\n"轉(zhuǎn)化成"\n",unixtodos把"\n"轉(zhuǎn)化成"\r\n"。
命令dos2unix和unix2dos的使用非常簡單,格式為:dos2unix filename
如果想更多的了解這兩個(gè)命令,可以查看手冊(cè):
man dos2unix
它會(huì)告訴你dos2unix的高級(jí)用法
(二)
Ubuntu下默認(rèn)沒有安裝dos2unix工具,而且也沒有一個(gè)叫這個(gè)名字的工具(我在solaris里用過dos2unix,不知道為啥Ubuntu沒有)。但是有一個(gè)替代工具——tofrodos , 下面就說一下它的安裝和使用。
當(dāng)然還是apt安裝啦。
(1)安裝tofrodos
sudo apt-get install tofrodos
實(shí)際上它安裝了兩個(gè)工具:todos(相當(dāng)于unix2dos),和fromdos(相當(dāng)于dos2unix)
安裝完即可,現(xiàn)在你已經(jīng)可以進(jìn)行文本格式的轉(zhuǎn)換啦。
比如: todos Hello.txt (即unix2dos Hello.txt)
fromdos Hello.txt (即dos2unix Hello.txt)
(2)做一些優(yōu)化
由于習(xí)慣了unix2dos和dos2unix的命令,可以把上面安裝的兩個(gè)工具鏈接成unix2dos 和dos2unix,或者僅僅是起個(gè)別名,并放在啟動(dòng)腳本里。
步驟:
ln -s /usr/bin/todos /usr/bin/unix2dos
ln -s /usr/bin/fromdos /usr/bin/dos2unix
或者在 ~/.bashrc里起個(gè)別名
vi ~/.bashrc
添加 alias unix2dos=todos alias dos2unix=fromdos
(三)
另外如果要在目錄中大量替換, 可以使用find + xargs
比如:
find ./model -name *.sh | xargs fromdos
(一)
最近在學(xué)習(xí)shell編程,可是在《Linux程序設(shè)計(jì)》指定的網(wǎng)站上下載了源碼,使用的時(shí)候卻一直出問題。提示:”bash: ./here1:/bin/sh^M:損壞的解釋器: 沒有該文件或目錄“。之后用vi編輯器打開文件,發(fā)覺每一行的***有淺藍(lán)色的字符'^M'。才知道了問題所在
其實(shí)并沒什么奇怪的,出現(xiàn)這種錯(cuò)誤的原因是因?yàn)長inux和Windows文本文件的行結(jié)束標(biāo)志不同。在Linux中,文本文件用"\n"(0a)表示回車換行,而Windows用"\r\n"(0d 0a)表示回車換行。所以在Linux中使用Windows的文本文件常常會(huì)出現(xiàn)錯(cuò)誤。為了避免這種錯(cuò)誤,Linux提供了兩種文本格式相互轉(zhuǎn)化的命令:dos2unix和unix2dos,dos2unix把"\r\n"轉(zhuǎn)化成"\n",unixtodos把"\n"轉(zhuǎn)化成"\r\n"。
命令dos2unix和unix2dos的使用非常簡單,格式為:dos2unix filename
如果想更多的了解這兩個(gè)命令,可以查看手冊(cè):
man dos2unix
它會(huì)告訴你dos2unix的高級(jí)用法
(二)
Ubuntu下默認(rèn)沒有安裝dos2unix工具,而且也沒有一個(gè)叫這個(gè)名字的工具(我在solaris里用過dos2unix,不知道為啥Ubuntu沒有)。但是有一個(gè)替代工具——tofrodos , 下面就說一下它的安裝和使用。
當(dāng)然還是apt安裝啦。
(1)安裝tofrodos
sudo apt-get install tofrodos
實(shí)際上它安裝了兩個(gè)工具:todos(相當(dāng)于unix2dos),和fromdos(相當(dāng)于dos2unix)
安裝完即可,現(xiàn)在你已經(jīng)可以進(jìn)行文本格式的轉(zhuǎn)換啦。
比如: todos Hello.txt (即unix2dos Hello.txt)
fromdos Hello.txt (即dos2unix Hello.txt)
(2)做一些優(yōu)化
由于習(xí)慣了unix2dos和dos2unix的命令,可以把上面安裝的兩個(gè)工具鏈接成unix2dos 和dos2unix,或者僅僅是起個(gè)別名,并放在啟動(dòng)腳本里。
步驟:
ln -s /usr/bin/todos /usr/bin/unix2dos
ln -s /usr/bin/fromdos /usr/bin/dos2unix
或者在 ~/.bashrc里起個(gè)別名
vi ~/.bashrc
添加 alias unix2dos=todos alias dos2unix=fromdos
(三)
另外如果要在目錄中大量替換, 可以使用find + xargs
比如:
find ./model -name *.sh | xargs fromdos
【編輯推薦】