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 -n,nl 提供了更靈活的格式化選項,能夠針對空白行、頁首與頁尾進行精細控制,非常適合程式碼檢視、日誌分析與文件排版。
一、 基本語法與常用參數
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。
五、 相關指令推薦
六、 參考資源與官方文件
如需進一步瞭解 GNU Coreutils nl 指令與進階格式設定:
留言
張貼留言