第一次咬我時,我正在將 PDF 中的一段條款和條件複製到支援回覆中。 PDF 中看起來不錯。當它落在我的編輯器中時,它變成了一個樓梯,每一行都彈到頁面中間的新行,因為 PDF 已經在每條視覺行的末尾烘烤了一個艱難的回報。手動修復它意味著刪除換行符、添加空格並重複四十次。我在 toolz。dev 上建立了足夠的工具,知道何時一項工作值得自動化,而這項工作多年來一直在悄悄地浪費我的時間。所以我建造了 刪除換行工具,本指南是我了解到的有關問題存在原因以及如何正確清潔問題的所有資訊。
TL;DR: 從 PDF、電子郵件和終端複製的文字通常會在每行顯示行末尾有一個換行符,而不僅僅是每個段落的末尾。貼上它會留下斷線、參差不齊的線條。這 刪除換行工具 刪除這些換行符並用您選擇的分隔符號連接文本,其段落感知模式保留段落之間的空白行,因此結果讀作散文,而不是一個巨大的運行行。它都在您的瀏覽器中運行,因此不會上傳任何內容。
為什麼我的複製文字充滿了換行符?
簡而言之,換行和換段是兩件不同的事情,很多軟體都混淆了它們。
當您輸入文字處理器或瀏覽器時,您僅在段落末尾按 Enter 鍵。文字會自動包裹在段落內,因此您看到的視覺線條會根據視窗的寬度動態決定。段落內根本沒有換行字元。這就是所謂的軟包裝,這就是為什麼當您調整視窗大小時,同一段落會乾淨地重新流動。
許多其他來源卻做相反的事情。 PDF 儲存每行的位置,因此當您從中複製文字時,提取器通常會在頁面上看到的每行的末尾放置一個真正的換行符。純文字電子郵件歷來以 72 或 76 列包裝,每行都有硬回复,這種約定早於網絡,並且仍然出現在郵件列表和引用的回復中。代碼註釋、日誌檔案以及列印到固定寬度終端的任何內容都會執行相同的操作。在所有這些中,換行符並不是標記思想的結束,而是標記恰好那麼寬的物理行的結束。
當你把它貼到一個軟包裝的地方時,這兩個想法就會發生衝突。你的編輯已經將文字包裝起來以適應,現在有額外的硬回复,在線條到達邊緣之前將其剪短。結果是樓梯:在奇怪的地方折斷的線條,拒絕回流,並且在除了複製的窗戶之外的所有窗戶尺寸中看起來都折斷了。
刪除換行符有什麼作用?
刪除換行符意味著刪除這些換行符並將各個部分縫合在一起,以便單字再次以連續文字的形式流動。唯一真正的決定是在每條換行符曾經所在的間隙中放入什麼。
大多數時候,您想要一個空格,因為換行符代表句子通常具有的兩個單字之間的空格。有時您根本什麼都不想要,例如當一個長數字或代碼令牌被分成兩行並且需要無間隙地重新連接時。有時您想要一個逗號或另一個分隔符,因為這些行實際上是一個列表,並且您希望它們作為逗號分隔值位於一行上。該工具為您提供所有這些,以及任何其他內容的自訂欄位。
還有一個角色值得了解。 Windows 以兩個字元結束行,一個回車符,後面跟著一個換行符,寫為 CRLF。 Unix 和現代 macOS 使用單行提要,LF。非常舊的 Mac 軟體使用單獨的回車符 CR。如果您混合來自不同來源的文本,您最終可能會得到所有三個來源的破爛組合,而只尋找其中一個的天真的查找和替換會留下其他內容。刪除換行工具首先會標準化所有三個,因此無論您的文字來自哪裡,每個行結尾的處理方式都相同。
如何刪除換行符但保留我的段落?
這項功能使該工具從鈍器變成了有用的工具,因此值得理解。
如果你簡單地刪除文件中的每一行換行符,你就會得到一個巨大的段落。所有句子一起運行成一條不間斷的行,使文本可讀的結構消失了。這有時是你想要的,但通常不是。你想要的是刪除每個段落內的意外換行符,同時保持段落之間的故意換行符。
該工具透過查看空白行來區分兩者。一條換行符被視為段落內的意外中斷並被刪除。一條空白行(即連續兩條換行符)被視為真實的段落邊界並保留。所以一個被這樣破解的文件:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
以兩個乾淨的段落形式出現,它們之間有一條空白行,而不是一長行。這正是從 PDF 或包裝電子郵件複製的文字形狀,其中每個段落內部都有中斷,但段落之間由一條空白行分隔。保留保留段落中斷選項(這是預設選項),並且該工具可以執行正確的操作,而無需進一步擺弄。
當您確實希望所有內容都在一行上時,請關閉該選項。然後,整個輸入中的每條換行符都會被您選擇的分隔符號替換,這就是您將一列值轉換為單一逗號分隔行的方式。
我應該選擇哪個分隔符號?
分隔符號是替換每個刪除的換行符的字串。正確的選擇取決於行代表什麼。以下是常見選項在相同三行輸入上的行為 apple, banana, cherry:
| 分隔符號 | 結果 | 使用時 |
|---|---|---|
| 空間 | apple banana cherry |
這些行是單字或句子片段,應該讀作散文 |
| 沒什麼 | applebananacherry |
單一令牌被分成幾行,必須無間隙地重新連接 |
| 逗號 | apple, banana, cherry |
這些行是您想要的逗號分隔值的清單 |
| 分號 | apple; banana; cherry |
您需要一個不會與資料中的逗號衝突的清單分隔符號 |
| 管道 | apple | banana | cherry |
您正在建立 Markdown 表行或分隔記錄 |
| 定制 | 無論你輸入什麼 | 您需要特定的木工,例如 - 或一個選項卡 |
空間是預設的,因為它比普通散文的任何其他選擇都要頻繁得多。當您重塑資料而不是讀取資料時,清單分隔符號就會發揮自己的作用,例如將複製的列從電子表格中轉換為單行,您可以將其貼上到查詢中。
清理選項有什麼作用?
兩個額外的切換可以整理連接本身之外的輸出,並且預設情況下兩者都會打開,因為它們幾乎總是有幫助。
在連接行之前,修剪會刪除每行開頭和結尾處的空白。這很重要,因為複製的文字經常帶有您看不到的尾隨空格,以及一旦該行不再是自己的行,您就不想保留的行開頭的縮排。如果不進行修剪,這些雜散空間就會在連接中倖存下來,並顯示為連接文字中間的尷尬間隙。
折疊空間更進一步,將兩個或多個空間或選項卡的任何運行減少到一個空間。一旦行被連接,很容易最終得到雙空格,其中尾隨空格與前導空格相遇,或者原始文本使用空格來對齊某些內容。折疊它們可以讓您獲得散文所期望的單一間距。重要的是,這僅涉及空格和製表符,而不涉及分隔段落的換行符,因此它不會撤銷段落感知連接。
還有一個刪除空行選項,預設為關閉,適用於輸入有雜散空白行的情況,您不想成為段落間隙。打開後,空行將被刪除而不是保留,這對於清理雙倍行距的匯出非常有用。
在瀏覽器中執行此操作安全嗎?
是的,這是我關心的一點,因為這是 toolz。dev 背後的整個設計理念。刪除換行工具完全使用 JavaScript 在瀏覽器中運行。您貼上時經過處理的文字將儲存在您正在查看的頁面的記憶體中,並且永遠不會上傳到伺服器。沒有任何帳戶、日誌記錄以及網路請求將您的內容帶到任何地方。
這比它第一次出現的要重要。人們最常需要回流的文字是從私人地方複製的文字:PDF 合約、內部電子郵件、客戶訊息、程式碼區塊。將其發送到遠端伺服器以刪除其換行符對於如此瑣碎的操作來說將是一種荒謬的隱私交易。因為工作是本地的,所以也沒有上傳限制,因此一個非常大的文件會像一個短文件一樣快速地回流,即使您的連接在頁面加載後下降,該工具也會繼續工作。如果您想要更長的參數來說明為什麼客戶端處理是此類實用程式的正確預設值,我將其寫在 資料隱私和線上工具指南.
這與尋找和替換有何不同?
當然,您可以在任何編輯器中自行執行此操作,並進行查找和替換,對於一次性來說,這很好。我仍然使用專用工具的原因在於手動查找和替換錯誤的三件事。
首先,段落問題。用空格簡單地替換換行符會將所有內容扁平化為一行,因為它無法區分段落內與段落邊界的中斷。要手動保留段落,您必須跳兩步舞:首先用佔位符替換雙換行符,然後用空格替換單換行符,然後放回雙換行符。這是繁瑣且容易出錯的。
其次,混合行結尾。如果您的文字混合了 CRLF、LF 和 CR,則單一查找和替換模式會錯過其中一些,並且您只能尋找掉隊者。該工具會預先標準化所有三個。
第三,空白清理。加入後,您通常需要折疊雙層空間並修剪末端,即按正確的順序再完成一兩次替換通過。該工具將所有這些折疊成一個具有可見切換功能的操作,因此您可以準確地看到每個操作的作用並進行調整,而無需重做整個操作。
這些都不是手工不可能實現的。它非常緩慢且容易出錯,以至於專用工具在您第二次或第三次需要時可以收回成本。同樣的邏輯就是為什麼我保留一整架小型文字實用程序,例如 重複的線路刪除器 用於推導列表和 行排序器 用於訂購一個,而不是每次都伸手去拿刮刮腳本。
我什麼時候想要刪除所有換行符?
確實有一些情況可以將所有內容折疊到一行,它們值得喊出來,這樣您就知道何時關閉段落選項。
最清晰的是資料重塑。您從電子表格中複製一列,然後它以每行一個值的形式到達。您希望它作為一個逗號分隔的清單放入 SQL 中 IN (...) 子句或配置數組。關閉保留段落中斷,選擇逗號分隔符,然後您就有了行。這同樣適用於使用管道分隔符號建立 Markdown 表行或組裝查詢字串。
另一個是重新加入包裝好的令牌。在電子郵件中跨行分割的長 URL、base64 blob 或 API 金鑰需要成為一個沒有分隔符號的連續字串。關閉段落中斷,選擇任何內容作為分隔符,然後片段融合回單一令牌。
經驗法則很簡單。如果你正在清理散文供人類閱讀,請保留段落。如果你要將文字重塑為單一機器可讀值,請關閉它們。能夠在同一輸入上在兩者之間翻轉,邊看邊看結果更新,這就是我將這兩種行為建置到一個工具而不是兩個工具的原因。如果清理後的文字位於某個位置,您將繼續編輯網站上更廣泛的套件 案例轉換器 到 字計數器,從這個結束的地方繼續。對於更廣泛的日常文字和程式碼助手, 開發人員生產力工具指南 是一張很好的地圖,而且 編碼工具指南 涵蓋格式化方面。
常見問題
如何刪除文字中的換行符?
將文字貼到刪除換行工具中並保留預設值。它用單一空格替換段落內的每個換行符,並立即顯示連接的結果,然後您可以複製該結果。整件事發生在您的瀏覽器中。
刪除換行符時如何保留我的段落?
保留段落中斷選項,這是預設選項。然後,該工具僅將每個段落內的單行中斷變平,並在段落之間保留一條空白行,因此保留文字結構而不是折疊成一行。
我可以將所有行合併為一條行嗎?
是的。關閉保留段落中斷選項,並將整個輸入折疊成一條連續行,這對於將一列值轉換為單一逗號分隔行或重新連接跨行的令牌非常方便。
換線與回車有什麼差別?
換行符是 Unix 和現代 Mac 系統上使用的換行符。回車是較舊的 Mac 結局,Windows 將兩者一起用作 CRLF。該工具會標準化所有三個內容,因此任何來源文字都以相同的方式連接,無論其來自何處。
如何用逗號而不是空格替換換行符?
選擇逗號分隔符號。每個刪除的換行符都會替換為逗號和空格,這將行列表變成逗號分隔列表。自訂選項可讓您使用任何您想要的連接符,例如選項卡或破折號。
為什麼輸出仍然有雙空格?
當行在加入之前已經在空格中結束時,就會發生這種情況。開啟折疊空格選項,將任何空格或製表符的運行減少到單一空格,然後開啟修剪以先刪除行末尾的空格。預設情況下兩者都處於開啟狀態。
刪除換行符會改變我文字中的單字嗎?
不。該工具僅刪除換行符,如果您詢問,還可以刪除 tidies 空白。單字、標點符號及其順序與原樣完全相同,因此文字的含義保持不變。
在這裡貼上私人文字安全嗎?
是的。所有處理完全在您的瀏覽器中使用 JavaScript 進行。您的文字永遠不會上傳或存儲,一旦頁面加載,該工具就會在沒有網路連接的情況下繼續工作,這使得合約、電子郵件和程式碼變得安全。



