跳到主要內容

← 返回部落格

如何移除換行、重複行與空行

從 PDF 複製一段文字貼到別的地方,它常常被拆成一堆短行;貼一份清單,又有一半的列是重複的。這大概是最常見、也最惱人的文字雜務之一。以下教你各種狀況怎麼清,以及背後到底發生了什麼。

移除換行(把段落接回去)

PDF 與 Email 常把一整段存成很多獨立的行,每行結尾都有一個硬換行。貼進一般編輯器後,它就維持斷開的樣子。要修好,就是把這些行重新接起來:

  • 用空白接——最常用:第一行⏎第二行 變成 第一行 第二行,適合一般文章段落。
  • 直接相連(不留間隔)——適合被切在半途、應該連在一起的資料。

關鍵在於理解:「換行」是一個真實的字元(有時是兩個:歸位字元 + 換行字元)。移除它,其實就是把那些字元換掉。

去除重複行

清單類——Email、關鍵字、網址——最容易混進重複。去重複的做法是保留每一行第一次出現、刪掉之後所有重複,這樣能維持原本順序。如果順序不重要,清完再排 A→Z,相同項目自然會排在一起。

刪除空行與多餘空白

還有兩個經典:

  • 空行——段落之間留下的空白列,刪掉能讓文字更緊湊。
  • 多餘空白——連續兩個空白,或 Tab 變成一串空白。把每一串壓成一個空白,格式就一致了。

一次全部搞定,還很隱私

不必手動一個個尋找取代,文字清理器會依合理順序套用——逐行去頭尾空白、合併空白、刪空行、去重複、排序,最後才依你的選擇合併換行——結果即時顯示。全程在你的瀏覽器本機執行,再敏感的文字也不會上傳。

CR、LF 與 CRLF:三種「換行」

那個看不見的換行,並不總是同一個字元。它有三種,分別來自不同作業系統:

  • LF(\n,換行 line feed)——Linux、macOS、Unix 使用。
  • CRLF(\r\n,歸位 + 換行)——Windows 的慣例。
  • CR(\r,單獨使用)——OS X 之前的老 Mac OS,今天已很少見。

多數時候你不會察覺。但當文字在不同系統之間流動,行尾不一致就會出真問題:diff 裡看起來「每一行都改了」、shell 腳本跑出莫名其妙的錯,或整段變成一長行,有時還冒出可見的 ^M。把行尾統一,這些問題一次解決。

軟換行不是換行

一個常見混淆:編輯器為了塞進視窗把長行折起來,那是軟換行——純粹是視覺效果,背後沒有字元。硬換行才是你能刪掉的真實字元。移除換行只會動到硬換行;軟換行會自己重新折行,根本沒有東西可刪。

什麼時候會遇到

  • 整理清單——Email、關鍵字、網址——要匯入時每列剛好一筆。
  • 把一段文字貼進會把它拆碎的表單或聊天視窗。
  • 重複使用前,先清乾淨 Email 簽名檔或貼來的引文。

行尾不一致也是為什麼兩份幾乎相同的檔案並排卻看起來天差地遠——如何比對兩段文字教你看穿雜訊、只盯真正的改動。

相關文字工具