Linux / Unix nl 指令:自動加上檔案行號與格式化輸出 完整教學

Linux / Unix nl 指令:自動加上檔案行號與格式化輸出 完整教學

📅 更新日期:2026-09-22 🏷️ 分類:Linux / Unix 文字處理 系統管理
💡 指令速查卡
指令名稱 nl
指令類型 POSIX / Coreutils Utility(文字處理指令)
適用環境 Linux 各發行版、macOS、Unix (AIX/Solaris)
常用頻率 ★★★★☆

在 Linux 與 Unix 作業系統環境中,nl(Number Lines)是用於計算並在文字檔案內容輸出時自動加上行號的強大指令。相比於 cat -nnl 提供了更靈活的格式化選項,能夠針對空白行、頁首與頁尾進行精細控制,非常適合程式碼檢視、日誌分析與文件排版。

一、 基本語法與常用參數

nl 指令在大部分 Linux / Unix 系統中的標準語法結構如下:

nl [選項] [檔案名稱]
參數 / 選項 說明 預設值 / 必填
-b a 表示不論是否為空白行,所有的行都要加上行號(類似 cat -n)。 選填
-b t 若行為空則不列出行號(預設值)。 預設值
-n [ln|rn|rz] 設定行號欄位的格式:ln(靠左)、rn(靠右無補零)、rz(靠右並自動補零)。 rn
-w number 設定行號欄位所占用的字元寬度(預設為 6)。 6

二、 核心功能與運作原理

nl 指令會讀取指定的檔案(或標準輸入),並在每一行的開頭加上對應的行號再輸出到螢幕。它比 cat -n 更強大的地方在於其高度客製化的區段(Body、Header、Footer)編號邏輯與樣式調整能力。

在日常 Linux / Unix 系統維護與開發中,`nl` 的核心作用包括:

  • 文件閱讀與對齊:為程式碼或日誌檔案加上清晰的行號,便於團隊除錯與討論。
  • 過濾空白行:預設僅對非空白行編號,使輸出結果更為乾淨精簡。
  • 彈性欄位控制:自由調整行號的寬度、對齊方式(靠左或靠右)及補零格式。

三、 實用指令範例

範例 1:基本使用 (自動忽略空白行編號)

對檔案內容進行編號輸出(預設不對空白行編號):

nl filename.txt

範例 2:連同空白行一起編號 (-b a)

強制讓所有行(包含空白行)都顯示行號:

nl -b a filename.txt

範例 3:自訂行號欄位寬度與對齊格式 (-w 與 -n)

設定行號寬度為 3 個字元,並改為靠左對齊 (ln):

nl -w 3 -n ln filename.txt

四、 常見陷阱與注意事項

⚠️ 注意事項 1:預設會自動過濾空白行
初次使用 nl 時,常會發現空白行沒有被編上行號。這是因為預設參數為 -b t。若需要對所有行編號,請記得加上 -b a
💡 小技巧:搭配管線 (Pipe) 使用
nl 支援從標準輸入接收資料,因此可以完美串接其他指令,例如:cat file.txt | grep "error" | nl

五、 相關指令推薦

  • cat:顯示檔案全部內容或串接檔案(使用 cat -n 可快速顯示行號)。
  • grep:在檔案中搜尋特定字串或正規表示式。
  • wc:計算檔案的行數、字數與位元組數。

六、 參考資源與官方文件

如需進一步瞭解 GNU Coreutils nl 指令與進階格式設定:

留言

相關文章 / 薪資情報

文章載入中...

你可能有興趣

精選文章 / 推薦情報

文章載入中...