「為每一行加上前綴和後綴」工具可在單一瀏覽器作業中為最多一百萬個字元的文字加上裝飾,在每個輯行的開頭與結尾插入字面意義的前綴和/或後綴,同時保留行序、內部空白以及原始行內容。由於工具完全在目前的分頁中執行,大段貼上的內容會在裝置本機處理,而非傳輸到遠端服務,這在文字包含記錄、客戶資料、程式碼範例或任何您不希望上傳的內容時特別重要。輸出會下載為純 UTF-8 TXT 檔,沒有位元組順序標記、沒有富文本樣式、沒有試算表引號、也不會自動偵測分隔符號,因此結果就是您輸入的內容加上您選擇包在外面的內容。這樣的組合——固定的輸入上限、本機處理路徑,以及刻意保持無格式的下載——正是這個工具適用於大型行清單前綴作業的原因,因為一般的尋找取代或轉欄位為 CSV 的輔助工具會破壞資料。

add prefix to each line large text
在瀏覽器中為大型文字的每一行加上前綴

為什麼大型文字需要不同的工作流程

當輸入只有幾十行時,幾乎任何尋找取代的技巧都管用。但當輸入跨越數萬行或數十萬字元時,讓小型工作輕鬆的那些假設就開始崩壞。編輯器會在某個固定的欄位或字元上限處截斷貼上內容。試算表工具會加入引號、跳脫字元或您並未要求的行尾轉換。伺服器端處理器代表您的文字會離開本機,這對記錄檔、客戶識別碼、內部文件,以及任何受保密條款約束的內容都是個問題。即使是命令列上的本機腳本,也可能因為 shell 引號處理或緩衝區限制而損壞多 MB 的貼上內容。

「為每一行加上前綴和後綴」工具正是為了這個中間地帶而設計:太長而無法手動編輯、又太敏感而不能上傳,但仍小到足以讓瀏覽器分頁一次處理完畢。輸入的硬性上限是一百萬字元,而整個裝飾步驟——依行界分割、串接前綴和後綴、再合併回去,並產生 UTF-8 文字 Blob——都在 JavaScript 中於本機執行。輸入內容的任何一個字元都不會離開裝置,結果檔案是在用戶端以 Blob 物件建立,而非從遠端端點串流回來。

這個工具在規模化時能處理什麼

當文字很大時,有幾項保證更為重要,因為任何單一的意外正規化或位元組順序標記都可能破壞下游的 grep、CI 記錄解析器或 SQL 載入器。下表列出工具接受的輸入特性,以及這些特性如何反映在輸出中。

輸入特性工具中的行為
最多 1,000,000 字元單次貼上即可接受;只有在超過上限時才會發生錯誤
CRLF 行尾(Windows)在輸入時辨識,並在產生的輸出中正規化為 LF
CR 行尾(傳統 Mac)在輸入時辨識,並在產生的輸出中正規化為 LF
LF 行尾(Unix)在輸出中保留為 LF
輸入結尾的尾端換行會成為最後一個空白邏輯行,並依空白行政策決定是否加以裝飾或跳過
表情符號與非拉丁字元以 JavaScript 字串形式原樣傳遞,並在下載的 TXT 中以 UTF-8 輸出
預覽窗格中的視覺換行僅為顯示效果;不會在 下載的檔案中加入實際的換行字元

最後一列正是處理寬幅文字的人會感到意外之處。一長串串接的 SQL 片段或一段沒有空格的單一記錄項目,在瀏覽器預覽中可能會視覺上換行,但這種換行純粹是預格式化區域的顯示行為。下載的檔案會把該行以一條不中斷的字串完整保存。如果您想在裝飾之前知道實際有幾行,「行數計算器」可以從同一份輸入提供總行數、空白行數與最長行長度等統計。

如何在瀏覽器中為大型文字的每一行加上前綴

無論輸入是二十行還是二十萬行,流程都相同,因為一旦您點下生成,所有工作都在一次作業中完成。

  1. 將要裝飾的行貼上或輸入到輸入區。可接受最多一百萬字元,因此對任何您合理會手動編輯的行清單而言,單次貼上就已足夠。
  2. 輸入前綴、後綴,或兩者皆有。每一項上限為 200 個 Unicode 字元,且兩者中至少須有一項非空白,因此工具會拒絕單純將輸入原樣回傳的要求。
  3. 選擇是否讓僅含空白的行保持不變。開啟時,空字串與僅含空白的行會原樣返回;關閉時,每個邏輯行都會被裝飾,包括空白行與僅含空白的行。
  4. 點擊生成以產生精確轉換後的字串。預覽會在預格式化區域中顯示裝飾後的輸出,保留空格與縮排,同時允許過長的行視覺上換行。
  5. 將預與您的來源比對檢查,然後將結果下載為 UTF-8 TXT 檔。Blob 會標記為 UTF-8 純文字,內容僅包含產生的字串,沒有位元組順序標記、富文本樣式,也沒有源自檔名的前綴。

如果您的輸入原本來自 Windows 記錄檔或傳統 Mac 的文字匯出,而您想在下載前確認行尾處理方式,「換行符轉換器」可以顯示來源中實際的位元序列。在大型檔案上值得做一次這個確認步驟,因為工具的正規化是靜默進行的,並沒有獨立的「已正規化」預覽。

字面意義的前綴和後綴字串

前綴和後綴輸入最重要的特性是它們會被視為字面意義的字串。它們不是正規表示式、取代權杖、Markdown、HTML 或樣板語法。反斜線、美元符號、星號、括號、方括號與引號,都會以輸入時的原貌進入輸出,不會進行跳脫,也不會展開反向引用。這聽起來很平凡,但別忘了另一種做法往往是各種意外:例如一個進去的點號會悄悄比對到任何字元、dollar-one 會把第一個擷取群組整個吃掉,或是 Markdown 標題在落入相容的編輯器時瞬間被套上標題樣式。

正是這種字面意義的行為,讓工具在人們實際用來裝飾大型行清單的場景中表現得可預期:SQL 片段、shell 註解、記錄標籤、列表標記、HTML 分隔符號以及引號字元。常見的模式是用單引號或反引號包住識別碼,這就是下表展示典型大型文字使用情境下輸入與輸出樣貌的原因。

使用情境前綴後綴輸入範例輸出範例
SQL IN 子句的值'',102310421099'1023','1042','1099',
腳本中的 Shell 註解# (空白)echo startedexit 0# echo started# exit 0
Markdown 項目符號清單- (空白)milkbreadeggs- milk- bread- eggs
記錄嚴重性標籤[INFO] (空白)user signed incache miss[INFO] user signed in[INFO] cache miss

這些前綴都不會被解讀。[INFO] 中的方括號會保持為方括號,'1023',中的單引號會保持為單引號,# echo started 中的井字號也會保持為井字號。如果您想要的是實際比對並取代行內子字串內容的轉換,那是另一種工作,需要用字面文字進行子字串比對,並不是本工具的功能。

空白行、尾端換行與空白政策

有一個開關控制空白行與僅含空白行的處理方式,而這個選擇比看起來更重要,因為它決定了實際上會有幾行被裝飾。

空白行設定空白行僅含空白的行非空白行
保留空白行不變(開啟)原樣返回原樣返回,並保留其空格以前綴與後綴加以裝飾
對每一行套用前綴與後綴(關閉)以前綴與後綴加以裝飾以前綴與後綴加以裝飾以前綴與後綴加以裝飾

有一個細節會在第一次裝飾大型檔案時讓人踩到:輸入結尾的尾端換行會產生最後一個空白邏輯行。當「保留空白行不變」啟用時,該最後一行會以空白的形式保留下來,讓檔案邊界清楚可見。當該選項關閉時,最後一個空白行會像其他行一樣被裝飾,因此結果會以前綴、後綴加上一個 LF 作為結尾。這個選擇不會刪除任何一行,但會改變最後的邊界是被裝飾,還是留作乾淨的分隔。

值得列出工具「不會」做的事,因為這些省略是刻意的:它不會修剪每行的開頭或結尾、不會收合併內部空白、不會改變字母大小寫、不會移除 Tab、也不會去除重複的值。如果輸入含有您想保留的開頭空白,工具會保留下來;如果輸入含有重複的行,輸出會以相同順序保留相同的重複行。正是這種可預測性,讓工具得以融入那些已經信任輸入格式的管線之中。

Downloading and Reusing the Result

The generated string is exposed as a Blob labeled UTF-8 plain text, and the browser downloads it through a local URL that is revoked the moment you edit the input, the prefix, the suffix, or the blank-line setting. That revocation matters because it stops an older decorated version from staying downloadable after the controls describe something different. The file itself contains only the generated string — no byte-order mark, no rich-text styling, no spreadsheet quoting, no CSV escaping, no filename-derived prefix, and no automatic delimiter detection.

That last clause is the one to plan around. If the next step in your pipeline expects a particular escaping style, the result will not invent it for you. A SQL loader that needs backslash-escaped single quotes inside the wrapped values, a CSV consumer that expects doubled quotation marks around embedded quotes, and a JSON array that wants each value escaped with a backslash all require their own escaping pass. Run this tool for the prefix and suffix, then run a format-specific escaper for the inside of the line. Separating the two steps keeps the decoration predictable and the escaping correct.

The internal mechanics rely on standard browser primitives. According to MDN's documentation on the Blob interface, a Blob represents a file-like object of immutable raw data that can be read as text or binary and assigned a MIME type, which is exactly how the UTF-8 TXT download is constructed without ever round-tripping through a server. The string manipulation itself uses native JavaScript string operations, and the only normalization step is the line-ending conversion that turns CRLF and CR into LF before the prefix and suffix are joined back in.

For a deeper look, see Bash Add Quotes to Each Line: Sed, Awk, and Xargs.

For a deeper look, see How to Change Line End Cap in Illustrator.