Awk nr意思

在AWK中,"nr"是一個預定義的特殊變數,它的意思是 "number of records",即記錄的數量。每處理一行輸入,nr的值就會增加1。

AWK在處理輸入檔案時,它會將輸入檔案按照分隔設定(默認是空白字元,如空格、制表符和換行符)分成若干行,每一行就是一個記錄(record)。當AWK處理這些記錄時,它會自動跟蹤當前處理的記錄數,這個計數就是通過變數nr來實現的。

例如,如果你有一個文本檔案,其中包含多行數據,當你使用AWK處理這個檔案時,nr會跟蹤每一行的記錄數。

下面是一個簡單的AWK腳本來演示nr的使用:

$ cat file.txt
Line 1
Line 2
Line 3

$ awk '{print NR, $0}' file.txt
1 Line 1
2 Line 2
3 Line 3

$ awk '{print nr, $0}' file.txt
1 Line 1
2 Line 2
3 Line 3

在這個例子中,NR(Number of Records)和nr都表示記錄的數量,但是NR是AWK內置的變數,而nr是我們嘗試自己定義的變數。由於AWK中的變數是區分大小寫的,所以NRnr是兩個不同的變數。當我們嘗試列印nr時,AWK會認為我們試圖訪問一個未定義的變數,因此它會列印一個空字元串。

因此,在使用AWK時,如果你想要列印記錄的數量,你應該使用內置變數NR,而不是嘗試定義自己的nr變數。