Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux nl 指令完整教學:行號顯示、空行處理、格式化輸出與實戰範例

編輯:關於 Linux

nl (Number Lines) 專為**給檔案內容加行號**設計,功能比 cat -n 更豐富:支援邏輯頁 (header/body/footer) 分別編號、空行略過、行號靠左/靠右/補零、位數自訂。本文完整解析參數、邏輯頁機制與實戰範例。

指令語法


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

核心參數速查

參數說明
-b STYLE主體編號方式:a=全部行(含空行)、t=非空行(預設)、n=不編號、pREGEXP=符合正則行編號
-h STYLE標題區編號方式 (同 -b)
-f STYLE頁腳區編號方式 (同 -b)
-n FORMAT行號格式:ln=靠左、rn=靠右不補零、rz=靠右補零 (預設)
-w NUMBER行號欄寬 (預設 6),配合 -n rz 補零
-s STRING行號與內容分隔字串 (預設 Tab)
-p跨邏輯頁不重設行號 (預設每頁重設)
-d STRING邏輯頁分隔字串 (預設 \: )

邏輯頁機制

輸入視為含 **Header、Body、Footer** 三區的邏輯頁,分隔字串預設 \: (單獨一行)。
預設:-h t -b t -f n (標題/主體編號非空行、頁腳不編號)。
搭配 -p 可跨頁連續編號。

實戰範例

測試檔 log2014.log


2014-01
2014-02
2014-03
2014-04
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
=======

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


nl log2012.log
# 輸出:
# 1  2012-01
# 2  2012-02
# 3  =======

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


nl -b a log2012.log
# 輸出:
# 1  2012-01
# 2  2012-02
# 3
# 4
# 5  =======

3. 行號靠右補零 6 位 (-n rz)


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

4. 行號靠右補零 3 位 (-n rz -w 3)


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

5. 自訂分隔符 (-s)


nl -s ": " log2014.log
# 輸出:
# 1: 2014-01
# 2: 2014-02

6. 邏輯頁分頁編號


# 檔案含分隔行 \:
cat > test.nl <<'EOF'
Header line 1
Header line 2
\:
Body line 1
Body line 2
\:
Footer line 1
EOF

nl -h a -b a -f a test.nl
# 輸出:
# 1  Header line 1
# 2  Header line 2
# 3  Body line 1
# 4  Body line 2
# 5  Footer line 1
# (每區獨立從 1 開始)

nl -p -h a -b a -f a test.nl
# 輸出 (跨頁連續):
# 1  Header line 1
# 2  Header line 2
# 3  Body line 1
# 4  Body line 2
# 5  Footer line 1

與 cat -n 比較

功能nlcat -n
空行編號控制靈活 (-b a/t/n/p)固定編號所有行
行號格式靠左/右、補零、位數固定靠右 6 位補空白
分隔符可自訂 (-s)固定 Tab
邏輯頁分區編號支援不支援

常見用途

  • 程式碼列印加行號:nl -b a -n rz -w 4 -s " " src.c
  • 日誌快速標號:nl -b a /var/log/syslog | tail -20
  • 腳本產生帶行號報表:nl -p -b a report.txt

nl 指令輸出範例

Copyright © Windows教程網 All Rights Reserved