1. 程式人生 > >DOS與Linux的換行字元

DOS與Linux的換行字元

一、vim開啟window下的檔案出現 ^M

首先理解,dos(windows)下建立的檔案的換行是  ^M\$ (CRLF) ,而在Linux下面,僅僅是以 \$ (LF) 來做斷行符號;

(^M\$ 其實沒有 \ ,只不過,編輯器預設會使其變為特殊符號,所以加了反斜線)

這就造成了,vim開啟dos檔案時,每行末尾出現^M的符號

而這個符號影響很大,如果是一個 shell script 指令碼,可造成 “程式無法執行”的狀態

那麼如何解決呢?

二、避免每行出現^M以及解決辦法

1. 可設定所使用的編輯器的斷行

  如 sublime text 中,選項:"default_line_ending": "system",

  表示,隨系統的不同而變化,windows下就是CRLF,unix就是LF

2. 使用命令替換符號

  vim命令列狀態下輸入:

  :%s/[Ctrl-v][Enter]//g

  Ctrl-v的作用是,使得接著輸入的回車鍵被認為是一個特殊字元,而不是vim命令的結束

3. 使用dos2unix命令

  如:dos2unix -k -n test.txt test.new.txt

            -k ,表示 保留該檔案原本的 mtime 時間格式(不更新檔案上次內容經過修訂的時間)

            -n ,表示 保留原本檔案,將轉換後的內容輸出到新檔案中

      注意:-k -n  不能連寫成 -kn ,否則執行不成功;

       當然還有相應的 unix2dos 命令,用於兩者的相互轉換

       具體 可通過 dos2unix --help檢視相關設定

相關推薦

DOSLinux字元

一、vim開啟window下的檔案出現 ^M 首先理解,dos(windows)下建立的檔案的換行是  ^M\$ (CRLF) ,而在Linux下面,僅僅是以 \$ (LF) 來做斷行符號; (^M\$ 其實沒有 \ ,只不過,編輯器預設會使其變為特殊符號,所以加了反斜線) 這就造成了,vim開啟dos

linux檔案檢視刪除

從Excel中複製貼上了一行數字到文字中,沒曾想每行後面都有一個換行符。在linux下很多命令操作都出錯,令我一度懷疑是自己的電腦或者是系統出了Bug。結果師兄提醒說,你的文字可能有換行符,結果還真是~ 1. linux查詢文字中是否存在換行符 cat -A filename

CSS強制英文、中文 強制英文

字母 psi 省略號 -s 換行 適合 hidden 強制 超出 1. word-break:break-all;只對英文起作用,以字母作為換行依據 2. word-wrap:break-word; 只對英文起作用,以單詞作為換行依據 3. white-space:pre-

CSS強制英文、中文

代碼 英文 指定 ext 亞洲 tran book 了解 bsp 設計制作HTML時會遇到CSS強制英文、中文換行與不換行的問題,可以通過本文了解一下相關知識。 結構: 1.Transshipment Booking System is launched只對英文起作用,以字

linuxPHP_EOL

bsp col linu ram pen code ont 換行 contents $file = ‘log.txt‘;file_put_contents($file,$param.PHP_EOL,FILE_APPEND); linux換行PHP_EOL

java中去除字串(String)中的字元(\r \n \t)

例1: public class Test { public static void main(String[] args) { String s = "'sds gdasda" + "\n" + "edaeafd'"; System.out.println("

Eclipse格式化程式碼時不 自動

每次用Eclipse自帶的Ctrl+shift+f格式化程式碼時,如果原來的一行程式碼大於80列,Eclipse就會自動換為多行,這點感覺不是很舒服,簡單試了一下,通過以下方式可以修改: 1、preferences->Java->Code Style->C

本文部分轉載 一.scanf函式的機理 scanf()不是以單位對輸入內容進行解釋,而是對連續字元流進行解釋(字元也視為一個字元)。scanf()連續地從流讀入字元,並且對和格式說明符(

本文部分轉載 一.scanf函式的機理   scanf()不是以行單位對輸入內容進行解釋,而是對連續字元流進行解釋(換行字元也視為一個字元)。scanf()連續地從流讀入字元,並且對和格式說明符(%d)相匹配的部分進行變換處理。例如,當格式說明符為%d 的時候,輸入123

CSS強制英文/中文

p1{ word-break:break-all; width:150px;}/*只對英文起作用,以字母作為換行依據*/.p2{ word-wrap:break-word; width:150px;}/*--只對英文起作用,以單詞作為換行依據*/.p3{white-spac

Windows檔案符轉Linux

      前段時間,有個朋友碰到由於Windows的換行符和Linux換行符不一樣,導致程式編譯不通過。這個問題之前自己也碰到過,網上資料也蠻多,不過還是藉此總結總結,因為發現總結+實踐的方式能夠讓自己更好的提升。 作業系統檔案換行符       首先介紹下,在ASCI

C語言基礎教程 printf( )函式中的回車‘\r’回車'\n'

今天完成了初級階段的學習,其實以前在開發微控制器的時候用過C語言,但是沒有系統的學過,所以再次學習感覺能夠查缺補漏。 C語言中的printf( )函式是一個很重要的函式。printf( )中的字元包含了三種: (1)以%開頭的格式控制字元 (2)以 \ 開頭的轉義字元 (3)普通字元 在printf

GridView一般強制

  首先設定<asp:BoundField DataField="家庭住址" HeaderText="家庭住址"   ItemStyle-Width="100" />gridview裡有一列繫結的資料很長,顯示的時候在一行裡面顯示,頁面拉得很寬。原因是連續英文段為

ASP.NET:GridView的一般強制

 //正常換行   GridView1.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");   //下面這行是自動換行   GridView1.Attributes.Add("style", "word-break:break-al

Windows,Linux

Windows:\r\n;Linux:\n;Unix系統裡,每行結尾只有“<換行>”,即“\n”;Windows系統裡面,每行結尾是“ <回車><換行>”,即“\r\n”;Mac系統裡,每行結尾是“<回車>”。一個直接後果是,U

回車符和符區別【Windows和Linux符的區別】

回車符號和換行符號產生背景  關於“回車”(carriage return)和“換行”(line feed)這兩個概念的來歷和區別。 在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字元。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正

C#中正則表示式回車

C#中,讀取文字檔案內容,裡面往往有許多回車換行符(“\r\n”),雖然一般不可見,但卻實實在在的存在。這時候,使用正則表示式進行匹配,需要考慮其存在。今天就遇到這樣一個問題: 有文字檔案內容如下:

Eclipse-格式化程式碼時不自動的實現方法

preferences->Java->Code Style->Code Formatter->Show… ,開啟之後,選擇“Line Wrapping”選項卡,在“Maximun line width”指定大於多少列時換行。 還是在“

【Pia日記】CCLabel 對齊自動

CCLabelTTF* pLabel = CCLabelTTF::create(ccStr.getCString(),"幼圓",48,CCSizeMake(270, 100), kCCTextAlignmentLeft);

Eclipse 預設設定的字元長度

eclipse 預設設定的換行長度,Ctrl+Shift +F 格式化程式碼後,經常換行,非常難看。 1.Java程式碼 開啟Eclipse的Window選單,然後 Preferences->Java->Code Style->Formatter-

Oracle sqlldr匯入以回車和回車字元結尾的文字

在一個大文字中(超過1.5G),當有同時存在回車換行以及回車字元結尾時,如果換行結尾的量大於sqlldr預設緩衝1048576時候,會報錯。 SQL*Loader-510: 資料檔案 (XXX.txt) 中物理記錄超過最大限制 (1048576) SQL*Loader-20