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檢視相關設定
相關推薦
DOS與Linux的換行字元
一、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只對英文起作用,以字
linux換行PHP_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