為文字加入行號,意思是在貼上文字區塊中的每一個邏輯行(包括空白行和僅含空白字元的行)前面,加上連續的整數,同時逐位元組保留原始行內容,並在輸出行之間使用單一的換行字元(LF)連接結果。為文字加入行號工具完全在瀏覽器中執行這個轉換:你可以貼上最多 1,000,000 個字元、設定介於 0 到 999999 之間的起始號碼、設定最多 20 個 Unicode 字元的分隔符號,並可選擇性地開啟前置零前補零。當你觸發這個動作時,工具會在每一個 CRLF、CR 和 LF 的邊界上切割輸入,從選擇的起始號碼開始為每個邏輯行編號,將產生的號碼和分隔符號加在未經修改的原始文字前面,並以 LF 連接結果。由於原始行尾符號是被標準化而非保留,因此無論來源是來自 Windows、經典 Mac 或 Unix,輸出都保持一致且可預期。編號預覽會顯示將寫入下載的 UTF-8 純文字檔案中的確切位元組,所以預覽中看到什麼就會儲存什麼。

編號流程實際上如何運作
你一觸發動作,這個轉換就會以四步驟管線的方式執行。首先,輸入字串會在每一個辨識到的行邊界處切割:carriage-return 加 line-feed(CRLF)、單獨的 carriage return(CR)、以及單獨的 line feed(LF)都視為換行符號,而結尾的空白行會被保留,以便號碼與原始行序之間的位置關係得以維持。其次,計數器會以選擇的起始號碼初始化,並且為每個邏輯行(包括空行)嚴格遞增 1,所以一個中間含有空行的三行輸入,仍然會產生三個編號行,而非兩個。第三,每個產生的號碼會以一般十進位數字表示,並加上設定的分隔符號,前置到原始行文字之前;除此之外原始行內容不會被更動,因此工具不會修剪、合併重複空白,或重新解讀 tab 鍵。第四,加上前置內容的行會以單一的 LF 字元重新連接,產生與預覽中出現的完全相同的字串,以及寫入下載檔案的完全相同的位元組。因為連接時一律輸出 LF,所以不論來源使用哪種行尾符號,輸出都是一致的。整個管線在瀏覽器中於本機執行,你貼上的內容不會被上傳到任何伺服器。
控制輸出結果的設定
有三個控制項會決定每個編號結果,每一項在按下動作按鈕之前都有值得了解的明確規則。
起始號碼必須是不超過六位數的非負整數,因此可接受 0 到 999999 之間的任何值。從該值開始,序列會為每個邏輯行嚴格遞增 1,這表示很長的輸入可能產生超過六位數的值;六位數的限制只適用於使用者輸入驗證,而非套用於序列本身,因此工具不會悄悄地把大數字計數器回繞或截斷。
分隔符號是插入到產生號碼與原始行之間的字面字串。它可以包含空白、標點符號、從剪貼簿貼上的 tab 鍵,或是完全留空,且長度上限為 20 個 Unicode 字元。常見的選擇包括句號加空白、冒號、垂直線或 tab 鍵。分隔符號絕不會被當作正規表示式解讀,字元也絕不會被跳脫,因此分隔符號欄位中的字面垂直線,在輸出中就是字面的垂直線。
補零功能使用的是結果中最後一個號碼的數字位數。以 8 為起始的三行序列會產生 08、09 和 10;以 1 為起始的九行序列則會產生普通的一位數號碼,因為最終值仍為一位數。補零只影響產生的數字前置部分;原始行文字絕不會被補零。如果關閉補零,每個號碼就會以其自然寬度顯示。
| 控制項 | 它控制什麼 | 可接受範圍或規則 | 預設行為 |
|---|---|---|---|
| 起始號碼 | 序列中的第一個整數 | 不超過六位數的非負整數(0 到 999999) | 從你選擇的值開始計數 |
| 分隔符號 | 插入到號碼與行之間的字面字串 | 最多 20 個 Unicode 字元;可為空;絕不以正規表示式解讀 | 原樣插入,不進行任何跳脫 |
| 前置零補零 | 每個產生號碼的位數 | 寬度等於結果中最後一個號碼的位數 | 關閉,因此號碼以自然寬度顯示 |
如果輸入為空、起始號碼不是有效的整數,或分隔符號超過 20 個 Unicode 字元,工具會顯示明確的錯誤訊息,且不產生任何輸出。產生結果時,輸入區域本身絕不會被修改,這樣可以讓你的來源文字保持完整,以便使用不同設定重新執行。
為你的文字套用行號
- 將你想要編號的文字貼上或輸入到輸入區域。這個工具接受最多 1,000,000 個字元的任何 UTF-8 文字。
- 將起始號碼設定為你想要的第一個標籤整數,範圍從 0 到 999999。
- 輸入你希望介於號碼和原始行之間的分隔符號,例如句號加空白、冒號、tab 鍵,或任何不超過 20 個字元的簡短字面字串。
- 若希望號碼欄對齊,請開啟前置零補零;若希望維持自然寬度的數字,則保持關閉。
- 觸發動作以產生結果,檢查預覽以確認編號、分隔符號和補零看起來正確,然後將結果以 UTF-8 純文字 TXT 檔下載。
如果你在產生結果之後編輯任何選項,舊的結果會被清除,且其下載物件 URL 也會被撤銷,因此不會將過期的下載誤認為目前的輸出。預覽使用預先格式化的換行,這表示長行可為了可讀性而視覺上換行,但下載檔案中不會增加額外的換行字元。輸出檔案本身是不含位元組順序標記(BOM)的純 UTF-8 文字,因此可以在任何文字編輯器或終端機中順暢開啟,不會有編碼上的意外。
行尾符號、空白行與空白字元的說明
有幾個行為經常讓第一次使用的使用者感到意外,但它們全都是刻意的設計選擇,而非副作用。
空白行也會被編號。邏輯行是指兩個辨識到的行邊界之間的任何內容,因此兩段文字之間的空行同樣會獲得自己的整數。僅含空白或 tab 的行也算邏輯行,並會獲得自己的號碼;工具不會悄悄略過僅含空白字元的行。如果輸入包含 alpha、一個空白行和 beta,則輸出會包含三個編號行,空白行會停留在它在來源中位於中間的位置。
輸出時行尾符號會被標準化。Windows 的 CRLF、經典 Mac 的單獨 CR,以及 Unix 的單獨 LF 在輸入時都會被辨識,但預覽與下載檔案在輸出行之間使用單一的 LF 字元。來源中的原始行尾位元組不會被逐字保留,這讓跨平台的輸出保持可預期,並避免混合行尾的檔案混入下載的文字中。
除此之外原始行文字不會被更動。這個轉換只加上號碼與分隔符號作為前置內容,其他每個字元都保持原狀,因此每行的重複空白、tab、起始縮排和結尾空白都會完整保留。如果輸入的最末端有結尾換行,會產生一個最後的空白邏輯行並被編號,這保留了原始行結構,而非將其折疊為較短的輸出。
編號輸出有所幫助的常見情境
當其他人需要引用特定行時,編號過的文字最為有用。在程式碼審查中,審查者可以寫出「請看第 42 行」,作者就能在幾秒內找到確切位置,而不需從檔案頂端逐行計算。在逐字稿或訪談記錄中,行號讓讀者和編輯者可以在編輯過程中引用精確的句子。在詩作或劇本草稿中,編號的行讓工作坊回饋變得輕鬆,因為「修改第 7 行」比重打在聊天視窗中重新輸入該行更快。在支援記錄中,客服人員可以貼上出問題的輸出並寫下「堆疊從第 118 行開始」,讓開發人員直接跳到該處。
對於法律審查工作副本、教室教材,以及任何需要穩定行識別碼的工作流程,標籤是附在邏輯行而非視覺行上的,這表示即使段落換行和字型被重新格式化,標籤依然存在。為包括空白在內的每個邏輯行編號,也保留了文件被人捲動時的視覺形狀,因為號碼欄會與本文以相同的速度往下移動。
這個工具並非用於純計數的工作流程、智慧地重新編號現有的編號清單,或加入頁碼。若需要計數而非轉換,行數計算工具可一次回報總行數、非空行數、空白行數以及最長行的長度。若需要為每行加入任意的字面文字而非連續號碼,為每行加入前置與後置文字工具可以處理任意的前置與後置文字,並提供保留空白行不動的選項。
如果你正在權衡選項,在 Mac 上不需使用 sed 為每行加入前置文字對此有詳細說明。
如果你正在權衡選項,為 JSON、SQL 和 CSV 將每行包在引號中對此有詳細說明。