為文字加上行號,意思是在每一個邏輯行的開頭,加上依序遞增的整數,並以你自行挑選的一個字元與原本的行內容分隔;還可選擇性地在前方補零,讓整欄對齊。每一行輸入文字都會剛好配上一個編號,包括完全空白或僅含空格的那幾行。編號本身是以一般十進位數字書寫,每一行遞增一,原本的行內容則完全不受到影響。最終結果是一整段文字,原本的順序原封不動,但每一行都帶有穩定的數字識別碼,方便你在審稿、引註或課堂講義中明確指認。起始值若設為 1,會得到大家熟悉的 1、2、3 序列;起始值若設為 0,序列就變成 0、1、2;若從更高的數字開始,整個序列就會整體向前平移該數量。當輸入文字非常長時,序列可能會超過六位數,因為六位數的限制只適用於你輸入的起始值,而不適用於序列本身隨行數增加後的長度。分隔字元會精準地夾在編號與原本行內容之間,所以行內容絕不會被竄改;而當啟用前方補零時,所有編號都會被加寬到相同位數,使整欄對齊且不截斷任何數值。

如果你以前從未用過行號工具,本指南的其餘部分將帶你了解這個工具的作用、實際需要理解的三項設定,以及取得可下載結果的確切步驟。我們會全程使用 為文字加上行號 工具,因為它完全在瀏覽器中執行,並產生一份純粹的 UTF-8 文字檔,你可以存到任何位置。

add line numbers to text for beginners
為初學者解說:為文字加上行號的簡易指南

純文字中的行號代表什麼

行號是附加在你文字每一行開頭的一小段前綴。它不屬於原本的行內容,而是位於前方,並以某個字元分隔,例如句號、冒號、定位點 (Tab) 或直立線。編號是依序遞增的:第一行拿到第一個號碼,下一行拿到下一個,以此類推。如果你的輸入有九行,輸出就會有九個編號,不管其中有幾行是空白的或只含有空格。

這一點很重要,因為初學者常常以為空白的行會被略過。其實不會。如果你貼上三行文件、中間那行是空白的,輸出仍然會是三個編號行,而不是兩個。這條規則是有意設計的:它保留了編號與原本行序列之間的位置對應關係,所以當有人說「看一下第 7 行」時,讀者就能在原文來源中找到那確切的行。

為什麼初學者會選擇行號工具

日常生活中有許多理由需要替一段文字的行加上編號。程式碼審查註記常會寫成「修掉第 42 行的錯字」,這必須在每一行都有標號時才有用。訪談與客服通話的逐字稿,如果每一行都帶有穩定的識別碼,引用起來會方便許多。教師在講義上加編號,是為了讓學生在課堂討論時能指回某一特定行。律師與編輯在審閱合約與草稿時也是這麼做。詩人與編劇有時也替詩行編號,以掌握詩節與節奏。

對初學者而言,吸引力更單純:你不必安裝軟體、學習腳本語言,也不需要在文書處理軟體裡貼公式。行號工具接受貼上的文字、套用三項設定,然後回傳一個你可以儲存並在任何地方重新開啟的檔案。

如何為你的文字加上行號

  1. 把你想編號的文字貼上或輸入到輸入區。可接受最多一百萬個字元。
  2. 挑選一個 0 到 999999 之間的起始編號。你可以在允許範圍內以任何非負整數開始。
  3. 設定分隔字元。常見的選擇包括句號加一個空格、冒號、直立線或單一的定位點 (Tab)。分隔字元會精準地夾在產生的編號與原本行內容之間,且長度上限為 20 個 Unicode 字元。
  4. 決定是否要開啟前方補零。當補零開啟時,每個產生的編號都會在前方補上零以使整欄對齊。
  5. 點擊動作來產生結果。工具會一致地切分 CRLF、CR 與 LF 三種邊界,為每一個邏輯行編號 (包含空白行),並以單一的 LF 字元串接輸出。
  6. 檢視預覽以確認輸出符合你的預期。預覽採用預先格式化 (preformatted) 的自動換行,這樣空格與換行可以保持可見,而過長的行雖然會在視覺上換行,底層文字內容並不會改變。
  7. 將結果下載為一份 UTF-8 純文字檔。檔案不含位元組順序標記 (BOM),你可以在電腦上任意重新命名或搬移。

如果你之後需要修改任何設定,只要更動任何選項,就會清掉舊的結果並撤銷其下載連結,因此你存下的檔案永遠是目前最新的輸出,而不是過時的副本。

初次使用者真正需要知道的設定

這個工具提供三項會影響輸出的設定,外加一項自動行為來確保下載檔案永遠是最新。下表以白話描述每一項,方便你在按下「產生」之前先決定要使用的值。

設定它控制了什麼適合初學者的選擇
起始編號指派給第一個邏輯行的整數。必須是非負整數,且最多六位數。1 是最常見的起始值。
分隔字元夾在編號與原本行內容之間、最多 20 個 Unicode 字元的字串。空格、標點與定位點 (Tab) 都允許;這些字元不會被當作正規表示式來解讀。句號加一個空格,或單一的定位點 (Tab)。
前方補零把每個產生的編號加寬,使整欄對齊。寬度由序列中最後一個編號的位數決定。當整欄需要對齊時就打開;當自然寬度即可時就關閉。
編輯偵測產生結果之後更動任何選項,會清掉舊的結果並撤銷下載網址。無需任何動作;工具會自動處理。

前方補零的運作方式

當前方補零開啟時,工具會以序列中最後一個數字來決定寬度。如果你從 8 開始,且共有三行,產生的數值會是 08、09 與 10,因為最後一個數字是兩位數。如果你從 1 開始,且共有九行,所有產生的編號都會維持一位數,因為最後一個數字 9 本身就只有一位。關閉補零則會以每個數字的自然寬度呈現,因此 8 維持為 8,10 維持為 10。

補零只會影響產生的數字前綴。原本的行文字絕對不會被加空白、修剪或修改。如果你想改為在每一行的開頭或結尾加上一段固定的字串,請參考 為每一行加上前綴與後綴。

行尾字元會怎麼處理

不同作業系統的行尾字元各有差異:Windows 使用「歸位字元加換行字元」(CRLF)、傳統 Mac 使用單一的「歸位字元」(CR),而 Unix 使用單一的「換行字元」(LF)。這個工具能識別這三種,並以一致的方式處理:每一個邊界都標示著一個邏輯行的結束與下一個的開始。預覽與下載的檔案在輸出行之間都使用單一的 LF 字元,因此這份檔案在每個現代系統上都能乾淨地開啟,不會出現混雜的位元組標記。

輸入末端若帶有一個換行字元,會產生一個額外的空邏輯行,而那個行也會被編號。如果你的輸入以三個空白行作結,你就會額外得到三個編號行。這條明確的規則保留了原本的行的結構,所以讀者提到「第 12 行」時,不論在原文或輸出中都能找到它。

按下「產生」之前,初學者應該知道的事

當輸入為空、起始編號不是非負整數,或分隔字元長度超過 20 字元時,工具會顯示明確的錯誤訊息並拒絕執行。這些情況下都不會產生結果,因此你可以調整後再試一次。

輸入上限為一百萬個字元。這不是一個可彈性調整的上限:工具不會接受更長的輸入,因為工作量是受限的,以維持瀏覽器的反應速度與可預期的記憶體用量。如果目的是計數而非轉換,行數計算器 工具能在不修改文字的情況下,告訴你總行數、非空行數與空行數。

編號的動作完全在本機瀏覽器內執行。不會有任何資料被上傳,而產生的檔案是由記憶體中本機的 Blob 物件所建立。根據 MDN 關於 Blob 物件的說明文件,這就是瀏覽器將記憶體中的資料快照暴露為可下載檔案的方式。文字切分為行的動作本身,則採用標準的 String split 方法,這也是每個現代瀏覽器內建相同的基礎機制。

什麼時候行號才是對的工具

當你需要為一段現有文字的每一行加上穩定的識別碼時,行號就是正確的選擇:例如程式碼審查註記、逐字稿、詩作或劇本草稿、客服紀錄、合約審閱的工作版本、課堂教材,以及任何工作流程中讀者可能會說「看第 N 行」的場合。當你需要的是智慧地重新編排一份已編號的清單、想在不更動行的情況下計算行數,或是需要頁碼而非行號時,它就不是合適的選擇。這個工具同樣不會保留原本混雜的 CRLF 與 LF 位元組序列;它會把所有的輸出統一規範為 LF。

針對這些不同的任務,本網站都有專屬的工具。純粹計算行數由「行數計算器」負責。在每一行前後加上任意文字 (包括跳過空白行的選項) 則交由「為每一行加上前綴與後綴」工具處理。這些替代方案都與行號功能沒有重疊,每個都只做一件事,因此最合適的工具,就是與你實際想做的那項改動對得上的那一個。

延伸閱讀:在 Windows 瀏覽器中為每一行加上前綴。