新聞中心
當回車字符(Ctrl+M)讓你緊張時,別擔心。有幾種簡單的方法消除它們?!盎剀嚒弊址梢酝刈匪莺荛L一段時間 —— 早在打字機上就有一個機械裝置或杠桿將承載紙滾筒的機架移到右邊,以便可以重新在左側(cè)輸入字母。

創(chuàng)新互聯(lián)是網(wǎng)站建設專家,致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,專業(yè)領域包括成都做網(wǎng)站、網(wǎng)站制作、電商網(wǎng)站制作開發(fā)、小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
他們在 Windows 上的文本文件上保留了它,但從未在 Linux 系統(tǒng)上使用過。當你嘗試在 Linux 上處理在 Windows 上創(chuàng)建的文件時,這種不兼容性有時會導致問題,但這是一個非常容易解決的問題。
如果你使用 od(八進制轉(zhuǎn)儲octal dump)命令查看文件,那么回車(也用 Ctrl+M 代表)字符將顯示為八進制的 15。字符 CRLF 通常用于表示 Windows 文本文件中的一行結(jié)束的回車符和換行符序列。那些注意看八進制轉(zhuǎn)儲的會看到 \r\n。相比之下,Linux 文本僅以換行符結(jié)束。
這有一個 od 輸出的示例,高亮顯示了行中的 CRLF 字符,以及它的八進制。
$ od -bc testfile.txt
0000000 124 150 151 163 040 151 163 040 141 040 164 145 163 164 040 146
T h i s i s a t e s t f
0000020 151 154 145 040 146 162 157 155 040 127 151 156 144 157 167 163
i l e f r o m W i n d o w s
0000040 056 015 012 111 164 047 163 040 144 151 146 146 145 162 145 156 ' s d i f f e r e n
雖然這些字符不是大問題,但是當你想要以某種方式解析文本,并且不希望就它們是否存在進行編碼時,這有時候會產(chǎn)生干擾。
3 種從文本中刪除回車符的方法
幸運的是,有幾種方法可以輕松刪除回車符。這有三個選擇:
dos2unix
你可能會在安裝時遇到麻煩,但 dos2unix 可能是將 Windows 文本轉(zhuǎn)換為 Unix/Linux 文本的最簡單方法。一個命令帶上一個參數(shù)就行了。不需要第二個文件名。該文件會被直接更改。
$ dos2unix testfile.txt
dos2unix: converting file testfile.txt to Unix format...
你應該會發(fā)現(xiàn)文件長度減少,具體取決于它包含的行數(shù)。包含 100 行的文件可能會縮小 99 個字符,因為只有最后一行不會以 CRLF 字符結(jié)尾。
之前:
-rw-rw-r-- 1 shs shs 121 Sep 14 19:11 testfile.txt
之后:
-rw-rw-r-- 1 shs shs 118 Sep 14 19:12 testfile.txt
如果你需要轉(zhuǎn)換大量文件,不用每次修復一個。相反,將它們?nèi)糠旁谝粋€目錄中并運行如下命令:
$ find . -type f -exec dos2unix {} \;
在此命令中,我們使用 find 查找常規(guī)文件,然后運行 dos2unix 命令一次轉(zhuǎn)換一個。命令中的 {} 將被替換為文件名。運行時,你應該處于包含文件的目錄中。此命令可能會損壞其他類型的文件,例如除了文本文件外在上下文中包含八進制 15 的文件(如,鏡像文件中的字節(jié))。
sed
你還可以使用流編輯器 sed 來刪除回車符。但是,你必須提供第二個文件名。以下是例子:
$ sed -e “s/^M//” before.txt > after.txt
一件需要注意的重要的事情是,請不要輸入你看到的字符。你必須按下 Ctrl+V 后跟 Ctrl+M 來輸入 ^M。s 是替換命令。斜杠將我們要查找的文本(Ctrl + M)和要替換的文本(這里為空)分開。
vi
你甚至可以使用 vi 刪除回車符(Ctrl+M),但這里假設你沒有打開數(shù)百個文件,或許也在做一些其他的修改。你可以鍵入 : 進入命令行,然后輸入下面的字符串。與 sed 一樣,命令中 ^M 需要通過 Ctrl+V 輸入 ^,然后 Ctrl+M 插入 M。%s 是替換操作,斜杠再次將我們要刪除的字符和我們想要替換它的文本(空)分開。 g(全局)意味在所有行上執(zhí)行。
:%s/^M//g
網(wǎng)站欄目:Linux下刪除回車字符
網(wǎng)頁網(wǎng)址:http://www.5511xx.com/article/coodseg.html


咨詢
建站咨詢
