nl 命令詳解

tanxiaoke88發表於2009-12-09

nhttp://blog.chinaunix.net/u2/72759/showart_1908804.html


語法:
nl [OPTION]... [FILE]...
說明:
將指定檔案的內容附加上行數,顯示到標準輸出。當沒有指定檔名或使用 "-" 符號時,資料將由標準輸入讀入。

如果你看完以下的選項說明,你會知道,這是個功能相當不錯的指令。
選項:
-b, --body-numbering=STYLE
自訂附加的行號樣式(STYLE)
-d, --section-delimiter=CC
使用 CC 字元分辨標頭、內容和腳註
-f, --footer-numbering=STYLE
自訂腳註附加的行號樣式(STYLE)
-h, --header-numbering=STYLE
自訂標頭附加的行號樣式(STYLE)
-i, --page-increment=NUMBER
自訂行的遞增數(NUMBER)
-l, --join-blank-lines=NUMBER
指定空白行的合併行數(NUMBER),將 n 行合併成一行。
-n, --number-format=FORMAT
指定附加行數的格式(FORMAT)
-p, --no-renumber
分頁後不重設行數
-s, --number-separator=STRING
插入指定的字串(STRING)分隔行號和內容
-v, --first-page=NUMBER
設定每頁第一行的行數(NUMBER)
-w, --number-width=NUMBER
自訂顯示行數的位數(NUMBER)
--help
顯示程式用法資訊
--version
顯示程式本身的版本資訊
指令預設的選項為 -v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn。CC 是兩個用來分辨每頁的標頭、內容和腳註的字元;如果沒有指定第二個字元則表示是 :。請輸入 表示 字元。
在選項說明中所提到的樣式(STYLE)可以是以下其中一個:
a 每一行都加上行號
t 只有非空白的行才加上行號
n 每一行都不加行號
pREGEXP 只有行內容符合正規表示式的才加上行號
在選項裡中的格式(FORMAT)可以是以下其中一個:
ln 向左對齊,前面不加零補位
rn 向右對齊,前面不加零補位
rz 向右對齊,前面加零補位
例項說明:
在 cat 指令有個 -n 選項,能為輸出加上行數。但 nl 指令則提供了更多這方面的彈性。
加上行數
# cat -n fileA
# nl fileA
以上這兩種方式,都可以為檔案 fileA 的顯示,加上需要的行號。
但如果想要讓附加的行數,做左右對齊或者是補零的動作就得依賴 nl 指令來做了。
# nl -n rz fileA
000001 /home
000002 |-- SourceCode
000003 | |-- MySQL
000004 | | |-- filter-requires-mysql.sh
000005 | | |-- my.cnf
.....略
變更行數的遞增值、顯示位數
預設的行數遞增值是1,但這可以改變。選項 -i 可以讓我們做到這一點
# nl -i 2 fileA
1 /home
3 |-- SourceCode
5 | |-- MySQL
7 | | |-- filter-requires-mysql.sh
9 | | |-- my.cnf
.....略
#
除了遞增值以外,還有設定顯示行數的位數。也就是 -w 選項,程式的預設值為6。如果有必要的話,我們可以自行更改
# nl -n rz -w 3 bb
001 /home
002 |-- SourceCode
003 | |-- MySQL
004 | | |-- filter-requires-mysql.sh
005 | | |-- my.cnf
.....略

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21340813/viewspace-1029492/,如需轉載,請註明出處,否則將追究法律責任。