萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux nl 命令詳解:顯示行號、自訂格式與實戰範例

nl (number lines) 將檔案內容輸出並加上行號,功能類似 cat -n 但提供更豐富的行號格式控制:位數、補零、靠左/靠右對齊、空行處理邏輯。本文完整整理參數、功能與實戰範例。

nl 命令輸出示意圖

命令格式

nl [選項]... [檔案]...

核心參數

參數說明
-b a所有行編號 (含空行),等同 cat -n
-b t非空行編號 (預設)
-n ln行號靠左顯示
-n rn行號靠右顯示,不補零
-n rz行號靠右顯示,補零
-w N行號欄寬 (預設 6 位)
-p邏輯分頁符不重置行號
-s STRING行號與內容分隔字串 (預設 Tab)

實戰範例

範例檔案 log2014.log 內容:

2014-01
2014-02
2014-03
...
2014-12
=======

1. 預設行號 (空行不編號)

nl log2014.log
# 輸出:
# 1 2014-01
# 2 2014-02
# ...
# 12 2014-12
# 13 =======

2. 空行也編號 (-b a)

nl -b a log2014.log

3. 補零固定 6 位 (-n rz)

nl -b a -n rz log2014.log
# 輸出:
# 000001 2014-01
# 000002 2014-02
# ...
# 000013 =======

4. 自訂欄寬 3 位 (-w 3)

nl -b a -n rz -w 3 log2014.log
# 輸出:
# 001 2014-01
# 002 2014-02
# ...
# 013 =======

5. 行號靠左 (-n ln)

nl -n ln log2014.log

進階應用:配合管線處理

# 列出 /etc/passwd 前 5 行並編號
head -5 /etc/passwd | nl -b a -n rz -w 3
# 過濾特定關鍵字並編號
grep "error" /var/log/messages | nl -b a

nl vs cat -n vs awk

工具特色適用場景
nl格式豐富、支援邏輯分頁報表產生、程式碼列印
cat -n簡單、內建快速檢視
awk '{print NR,$0}'可程式化、支援條件複雜過濾/轉換

小結

nl 雖非高頻指令,但在需要「美觀行號」的報表、程式碼審查、日誌分析輸出時極為實用。記住 -b a (全行編號)、-n rz (補零)、-w (欄寬) 三大核心參數即可應對 90% 場景。

copyright © 萬盛學電腦網 all rights reserved