康老师

NR和NF的含义

2019-03-01 14:42:56
相关推荐

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不会。这微妙的区别使它们可以应用于不同的需要。

实际使用中还可以用文件名判断当前处理的是哪一个文件。

阅读剩余内容
网友评论
相关阅读
小编推荐