成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux中刪除文本中的回車字符

系統(tǒng) Linux
當回車字符(Ctrl+M)讓你緊張時,別擔心。有幾種簡單的方法消除它們。你可以使用命令dos2unix、sed、vi,快來試試吧!

[[277928]]

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

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

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

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

  1. $ od -bc testfile.txt
  2. 0000000 124 150 151 163 040 151 163 040 141 040 164 145 163 164 040 146
  3. T h i s i s a t e s t f
  4. 0000020 151 154 145 040 146 162 157 155 040 127 151 156 144 157 167 163
  5. i l e f r o m W i n d o w s
  6. 0000040 056 015 012 111 164 047 163 040 144 151 146 146 145 162 145 156 <==
  7. . \r \n I t ' s d i f f e r e n <==
  8. 0000060 164 040 164 150 141 156 040 141 040 125 156 151 170 040 164 145
  9. t t h a n a U n i x t e
  10. 0000100 170 164 040 146 151 154 145 015 012 167 157 165 154 144 040 142 <==
  11. x t f i l e \r \n w o u l d b <==

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

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

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

dos2unix

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

  1. $ dos2unix testfile.txt
  2. dos2unix: converting file testfile.txt to Unix format...

你應(yīng)該會發(fā)現(xiàn)文件長度減少,具體取決于它包含的行數(shù)。包含 100 行的文件可能會縮小 99 個字符,因為只有末尾一行不會以 CRLF 字符結(jié)尾。

之前:

  1. -rw-rw-r-- 1 shs shs 121 Sep 14 19:11 testfile.txt

之后:

  1. -rw-rw-r-- 1 shs shs 118 Sep 14 19:12 testfile.txt

如果你需要轉(zhuǎn)換大量文件,不用每次修復(fù)一個。相反,將它們?nèi)糠旁谝粋€目錄中并運行如下命令:

  1. $ find . -type f -exec dos2unix {} \;

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

sed

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

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

一件需要注意的重要的事情是,請不要輸入你看到的字符。你必須按下 Ctrl+V 后跟 Ctrl+M 來輸入 ^Ms 是替換命令。斜杠將我們要查找的文本(Ctrl + M)和要替換的文本(這里為空)分開。

vi

你甚至可以使用 vi 刪除回車符(Ctrl+M),但這里假設(shè)你沒有打開數(shù)百個文件,或許也在做一些其他的修改。你可以鍵入 : 進入命令行,然后輸入下面的字符串。與 sed 一樣,命令中 ^M 需要通過 Ctrl+V 輸入 ^,然后 Ctrl+M 插入 M%s 是替換操作,斜杠再次將我們要刪除的字符和我們想要替換它的文本(空)分開。 g(全局)意味在所有行上執(zhí)行。

  1. :%s/^M//g

總結(jié)

dos2unix 命令可能是最容易記住的,也是從文本中刪除回車的最可靠的方法。其他選擇使用起來有點困難,但它們提供相同的基本功能。 

 

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-04-30 13:19:20

Linux刪除分區(qū)

2022-03-28 19:53:24

Linux恢復(fù)文件意外刪除文件

2022-09-20 14:46:17

PostgreSQL存儲工具

2017-07-21 13:25:33

LinuxMD5哈希恢復(fù)文件

2017-12-18 10:12:48

LinuxShell命令

2016-11-22 19:37:54

Linux恢復(fù)文件

2017-05-25 12:04:48

Linux刪除超大文件

2019-03-18 09:40:44

Linux命令編程語言

2022-04-20 10:25:27

Linux用戶密碼命令

2023-10-20 15:58:27

Python刪除指定字符

2019-09-16 13:48:03

Linux管理日志

2022-11-01 15:38:22

LinuxShell

2017-01-11 16:41:16

Linux設(shè)備文件文件系統(tǒng)

2020-03-02 14:45:53

Linux編輯字幕命令

2019-08-23 10:42:00

Linux復(fù)制文檔

2020-07-01 18:31:14

Linuxbash永遠循環(huán)

2016-11-24 09:22:20

Linux時區(qū)NTP服務(wù)器

2019-07-19 16:35:34

Windows 10恢復(fù)游戲

2020-07-09 13:10:42

GIMP曲線文本應(yīng)用

2022-11-02 08:20:43

Linux
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美激情精品久久久久久免费 | www.日本在线播放 | 日韩在线播放av | 日韩不卡一区二区三区 | 日韩精品在线一区 | 免费在线观看一区二区 | 岛国av一区二区三区 | 国产精品成人国产乱 | 亚洲国产欧美在线人成 | 久久国产精品久久国产精品 | 免费一区| 亚洲 欧美 日韩 在线 | 午夜性色a√在线视频观看9 | 日韩在线视频一区二区三区 | 成人依人 | 久久久久国产一区二区三区四区 | 日日av| 91精品久久久久久久久中文字幕 | 色婷婷精品久久二区二区蜜臂av | 亚洲最大成人综合 | 成人av观看 | 日本久久久一区二区三区 | www久久国产 | 亚洲欧美激情精品一区二区 | 91精品成人久久 | 日韩精品视频一区二区三区 | 欧美一区二区三 | 国产一级片在线观看视频 | 久久久久久久久久久一区二区 | 日韩视频精品在线 | 亚洲精品国产电影 | 国产一区二区三区免费 | 日日操视频 | 在线国产一区 | 一区二区免费在线视频 | 综合久久av | 日本xx视频免费观看 | 亚洲日本欧美日韩高观看 | 国产高清久久久 | 久久精品99 | 成年人免费看 |