NR和NF的含義

來源:魅力女性吧 2.52W
NR和NF的含義

NR - Number of Record - 當前處理的行是第幾行(因為awk是流處理工具,一行一行處理的,所以NR在不停的自增1)

FNR - File Number of Record - 當前處理的行是當前處理文件的第幾行

NF - Number of Fileds - 當前行有多少列數據(這個在每行都會根據設定的分割符重新計算,默認分割符是任意連續的多個空白符)

(NR==FNR) 大致等效於 (ARGIND==1) , 一般用來判斷是不是在處理第一個文件。

但區別是: 前者是判斷當前處理的總行數跟文件內行數相等,而這種情況一般都是在第一個文件上,而ARGIND==1是參數位置第1的文件時生效。—— 但,如果前面的文件是空的,那麼NR==FNR就生效於第一個非空文件,而ARGIND==1不會。這微妙的區別使它們可以應用於不同的需要。

實際使用中還可以用文件名判斷當前處理的是哪一個文件。

熱門標籤