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