国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux 中刪除文本中的回車字符的方法

2024-08-28 00:02:43
字體:
來源:轉載
供稿:網友

當回車字符(Ctrl+M)讓你緊張時,別擔心。有幾種簡單的方法消除它們。

“回車”字符可以往回追溯很長一段時間 ―― 早在打字機上就有一個機械裝置或杠桿將承載紙滾筒的機架移到右邊,以便可以重新在左側輸入字母。他們在 Windows 上的文本文件上保留了它,但從未在 Linux 系統上使用過。當你嘗試在 Linux 上處理在 Windows 上創建的文件時,這種不兼容性有時會導致問題,但這是一個非常容易解決的問題。

如果你使用 od八進制轉儲octal dump)命令查看文件,那么回車(也用 Ctrl+M 代表)字符將顯示為八進制的 15。字符 CRLF 通常用于表示 Windows 文本文件中的一行結束的回車符和換行符序列。那些注意看八進制轉儲的會看到 /r/n。相比之下,Linux 文本僅以換行符結束。

這有一個 od 輸出的示例,高亮顯示了行中的 CRLF 字符,以及它的八進制。

$ od -bc testfile.txt0000000 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 f0000020 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 s0000040 056 015 012 111 164 047 163 040 144 151 146 146 145 162 145 156 <==  . /r /n I t ' s d i f f e r e n <==0000060 164 040 164 150 141 156 040 141 040 125 156 151 170 040 164 145  t t h a n a U n i x t e0000100 170 164 040 146 151 154 145 015 012 167 157 165 154 144 040 142 <==  x t f i l e /r /n w o u l d b <==

雖然這些字符不是大問題,但是當你想要以某種方式解析文本,并且不希望就它們是否存在進行編碼時,這有時候會產生干擾。

3 種從文本中刪除回車符的方法

幸運的是,有幾種方法可以輕松刪除回車符。這有三個選擇:

dos2unix

你可能會在安裝時遇到麻煩,但 dos2unix 可能是將 Windows 文本轉換為 Unix/Linux 文本的最簡單方法。一個命令帶上一個參數就行了。不需要第二個文件名。該文件會被直接更改。

$ dos2unix testfile.txtdos2unix: converting file testfile.txt to Unix format...

你應該會發現文件長度減少,具體取決于它包含的行數。包含 100 行的文件可能會縮小 99 個字符,因為只有最后一行不會以 CRLF 字符結尾。

之前:

-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

如果你需要轉換大量文件,不用每次修復一個。相反,將它們全部放在一個目錄中并運行如下命令:

$ find . -type f -exec dos2unix {} /;

在此命令中,我們使用 find 查找常規文件,然后運行 dos2unix 命令一次轉換一個。命令中的 {} 將被替換為文件名。運行時,你應該處于包含文件的目錄中。此命令可能會損壞其他類型的文件,例如除了文本文件外在上下文中包含八進制 15 的文件(如,鏡像文件中的字節)。

sed

你還可以使用流編輯器 sed 來刪除回車符。但是,你必須提供第二個文件名。以下是例子:

$ sed -e “s/^M//” before.txt > after.txt

一件需要任意的重要的事情是,請不要輸入你看到的字符。你必須按下

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹山县| 塔河县| 忻州市| 偏关县| 黎平县| 沾益县| 济南市| 平和县| 丰原市| 于田县| 齐河县| 台山市| 青州市| 孝昌县| 阆中市| 宕昌县| 南投市| 衡阳市| 神农架林区| 射阳县| 静安区| 嘉峪关市| 鄂伦春自治旗| 台北市| 汝州市| 开阳县| 获嘉县| 邹平县| 泗阳县| 木兰县| 兰溪市| 溧阳市| 兴国县| 潜江市| 临安市| 沙坪坝区| 云龙县| 顺昌县| 阿拉尔市| 庐江县| 固阳县|