含義
nl --是一個LINUX命令,可以為輸出列加上編號
nl 是一個簡單但很好用的編號過濾工具,我在輸入的地方下了參數,讓所有行列的編碼皆靠左,nl 提供了非常多的參數使用,可以定義到很細很細的程式來制定它下好編號的輸出,下面是一些參數以及使用的範例說明
nl 命令
用途
計算檔案中行號。
語法
nl [ -b Type ] [ -f Type ] [ -h Type ] [ -l Number ] [ -d Delimiter ] [ -i Number ] [ -n Format ] [ -v Number ] [ -w Number ] [ -p ] [ -s Separator ] [ File ]
描述
nl 命令讀取 File 參數(預設情況下標準輸入),計算輸入中的行號,把計算過的行號寫入標準輸出。在輸出中,nl 命令根據您在命令行中指定的標誌來計算左邊的行。
輸入文本必須寫在邏輯頁中。每個邏輯頁有頭、主體和頁腳節(可以有空節)。除非使用 -p 標誌, nl 命令在每個邏輯頁開始的地方重新設定行號。可以單獨為頭、主體和頁腳節設定行計算標誌(例如,頭和頁腳行可以被計算然而文本行不能)。
用信號通知只包含下列定界符的檔案中行的邏輯頁節的開始:
行內容 哪一節的開始
\:\:\: 頭
\:\: 主體
\: 頁腳
在命令行上只能命名一個檔案。可以以任何順序列出標誌和檔案名稱。
標誌
所有參數都用預設值來設定。使用下列標誌更改預設設定。除 -s 標誌外,請輸入不帶變數的 -n 標誌來查看它的預設值。
-b Type 選擇主體節的行來計算。對 Type 變數的認可的值是:
a
計算所有行
t
不計算空行或包含任何非圖形符號如包含 tab 的行。(預設)
n
不計算任何行
pPattern
只計算那些被 Pattern 變數指定的行。
-d Delimiter 使用 Delimiter 變數指定的兩個字元作為邏輯頁節開始的定界符。預設字元是 \:(反斜槓、冒號)。您可指定兩個 ASCII 字元,兩個 1 位元組擴展字元或一個擴展字元。如果您在 -d 標誌後只輸入了一個 1 位元組字元,第二個字元維持預設值(冒號)。如果您想使用反斜槓作為定界符,請輸入兩個反斜槓 ( \\ )。
-f Type 選擇邏輯頁頁腳的行來計算。Type 變數的可能的值和 -b 標誌的可能值相同。Type 變數的預設值是 n(沒有行被計算)。
-h Type 選擇邏輯頁頭的行來計算。Type 變數的可能的值和 -b 標誌的可能的值相同。Type 變數的預設值是 n (沒有行被計算)。
-i Number 邏輯頁行號增加 Number 變數指定的數目。Number 變數的預設值是 1。Number 變數的範圍是從 1 到 250。
-l Number (小寫字母 l)使用在 Number 參數中指定的值作為計算為一的空行數。例如,-l3 一系列中每三個空行計一次數。Number 變數的預設值是 1。當設定了 -ha、-ba 或 -fa 選項該標誌起作用。Number 變數的範圍是從 1 到 250。
-n Format 使用 Format 變數的值作為行計算格式。認可的格式是:
ln
左對齊,前導零不計
rn
右對齊,前導零不計(預設)
rz
右對齊,前導零保留
-p 在邏輯定界符處不重新開始計算。
-s Separator 用在 Separator 變數中指定的字元將文本和行號分隔開。Separator 變數的預設值是制表符(tab)。
-v Number 設定初始邏輯頁行號為在 Number 變數中指定的值。Number 變數的預設值是 1。Number 變數的範圍是從 0 到 32767。
-w Number 使用通過 Number 變數指定的值作為行號中字元的數量。 Number 變數的預設值是 6。Number 變數的範圍是從 1 到 20。
退出狀態
該命令返回下列出口值:
0 成功完成。
>0 發生錯誤。
示例
1. 只計算無空格行,請輸入:
nl chap1
這個顯示 chap1 的計算列表,只計算了主體節中非空行。如果 chap1 沒有包含 \:\:\+:,或 \: 定界符,那么整個檔案被認為主體。
2. 要計算所有行:
nl -ba chap1
這計算主體節的所有行,包括空行。 nl 命令的這種格式對大部分使用是適用的。
3. 指定不同的行號格式,請輸入:
nl -i10 -nrz -s:: -v10 -w4 chap1
這個計算以 10 ( -v10)開頭並且以 10 (-i10)統計的 chap1 的行。它為每個數顯示 4 個數字(-w4),包括引導零(-nrz)。行號被兩個冒號(-s : :)從文本中分離。
例如,如果 chap1 包含文本:
A not-so-important not to remember:
You can't kill time
without injuring eternity.
那么計算列表是:
0010::A not-so-important
0020::note to remember
0030::You can't kill time
0040::without injuring eternity.
注意沒有計算空行。為了這樣做,像示例 2 顯示的一樣使用 -ba 標誌。
檔案
/usr/bin/nl 包含 nl 命令。
相關信息
在《AIX 5L V5.2 系統用戶指南:作業系統與設備》中的 Files 和 Input and Output Redirection。
範例:
# (1) Display the first 4 entries of the password
# file - numbers to be three columns wide and
# padded by zeros.
$ head -4 /etc/passwd | nl -nrz -w3
001 root:x:0:1:Super-User:/:/bin/ksh
002 daemon:x:1:1::/:
003 bin:x:2:2::/usr/bin:
004 sys:x:3:3::/:
#
# (2) Prepend ordered line numbers followed by an
# '=" sign to each line -- start at 101.
$ nl -s= -v101 Data.txt
101=1st Line ...
102=2nd Line ...
103=3rd Line ...
104=4th Line ...
105=5th Line ...
.......