为了方便awk编程,awk中引入了一个叫NF和NR的内置变量。
如果在命令表达式中使用没有$符号的NF变量,这个变量将显示一行记录中有多少个字段。
如果使用带有$符号的NF变量,这个变量将显示一行记录中最后一个字段。
与NF变量相似,awk命令还引入了另一个变量NR,这个变量用来追踪所显示的数据行的数目,即显示数据行的编号。
NR是指awk正在处理的记录位于文件中的位置(行号)
NF是指awk正在处理的记录包含几个域(字段),和域分隔符有关,默认为空格
NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。
在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。
NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。
$0变量,即第0个字段,$0变量表示整个数据行。
awk内建变量示例详解之NR、FNR、NF
http://www.letuknowit.com/topics/20120329/sample-about-awk-build-in-variable-nr-fnr-nf.html
Use of `NF` in awk command
https://stackoverflow.com/questions/47216786/use-of-nf-in-awk-command
AWK, What's NF and NR ?
https://www.unix.com/shell-programming-and-scripting/118605-awk-whats-nf-nr.html