1. dos命令行裡面怎麼換行,我想輸入個有好幾行的命令...
新建一個記事本,將後輟名改為.bat,如:新建文本文檔.bat
把需要運行的命令寫到裡面,寫好後運行寫下就可以了!如果你要看到命令執行過程,可以再最後加一行:pause
2. linux和dos下換行的不同表示
關於回車和換行的歷史。
回車和換行關於「回車」(carriage return)和「換行」(line feed)這兩個概念的來歷和區別。
在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鍾可以打10個字元。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。
於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。一個叫做「回車」,告訴打字機把列印頭定位在左邊界;另一個叫做「換行」,告訴打字機把紙向下移一行。
這就是「換行」和「回車」的來歷,從它們的英語名字上也可以看出一二。
後來,計算機發明了,這兩個概念也就被般到了計算機上。那時,存儲器很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加一個就可以。於是,就出現了分歧。
Unix系統里,每行結尾只有「<換行>」,即「
」;Windows系統裡面,每行結尾是「<回車><換行>」,即「
」;Mac系統里,每行結尾是「<回車>」,即「
」。一個直接後果是,Unix/Mac系統下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在Unix下打開的話,在每行的結尾會多車一個^M字元。
Dos和windows採用回車+換行CR/LF表示下一行,即^M$
而UNIX/Linux採用換行符LF表示下一行,即$
蘋果機(MAC OS系統)則採用回車符CR表示下一行,即^M
CR用符號' '表示, 十進制ASCII代碼是13, 十六進制代碼為0x0D;
LF使用' '符號表示, ASCII代碼是10, 十六制為0x0A. 所以Windows平台上換行在文本文件中是使用 0d 0a 兩個位元組表示, 而UNIX和蘋果平台上換行則是使用0a或0d一個位元組表示.
一般操作系統上的運行庫會自動決定文本文件的換行格式. 如一個程序在windows上運行就生成CR/LF換行格式的文本文件,而在Linux上運行就生成LF格式換行的文本文件. 在一個平台上使用另一種換行符的文件文件可能會帶來意想不到的問題, 特別是在編輯程序代碼時. 有時候代碼在編輯器中顯示正常, 但在編輯時卻會因為換行符問題而出錯. 很多文本/代碼編輯器帶有換行符轉換功能, 使用這個功能可以將文本文件中的換行符在不同格式單互換.
在不同平台間使用FTP軟體傳送文件時, 在ascii文本模式傳輸模式下, 一些FTP客戶端程序會自動對換行格式進行轉換. 經過這種傳輸的文件位元組數可能會發生變化. 如果你不想ftp修改原文件, 可以使用bin模式(二進制模式)傳輸文本.
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
一、windows的文件到linux下的轉換方法:
1. 用sed命令替換
sed -e 's/^M//g' original.txt > target.txt (注意^M 在Linux/Unix下是這樣輸入的:先按CTRL+v,接著按CTRL+SHIFT+m)
2. 在vi中替換
:%s/^M//g
3.在命令行下
tr -d " "<dosfile > unixfile
4.使用dos2unix命令
# dos2unix -k hosts
5.用sed命令
也可使用unix2dos命令。
三、其他
Mac -> UNIX:tr "
" "
"<macfile > unixfile
UNIX -> Mac:tr "
" "
"<unixfile > macfile
Microsoft DOS/Windows 約定,文本的每行以回車字元(
)並後跟換行符(
)結束。為了糾正這個問題,可以使用下列命令:
DOS -> UNIX:tr -d "
"<dosfile > unixfile
UNIX -> DOS:在這種情況下,需要用awk,因為tr不能插入兩個字元來替換一個字元。要使用的 awk 命令為 awk '{ print $0"
" }'<unixfile > dosfile