Shell使用$#表示输入的参数个数;
awk使用ARGC表示输入的参数个数;
2、参数内容:
Shell使用$*或者$@表示参数的内容;Shell没有将参数当做数组来处理。
awk使用ARGV表示参数内容;awk将参数当做一个数组来出来。
3、内置变量:
Shell编程中,$1,$2,...,$n表示输入的参数,同时,也表示调用函数时,传递给函数的参数。
awk中$0表示当前正在处理的记录,$1,$2....$n表示当前记录中的第一个字段,第二个字段,...第n个字段。
(awk中的记录,字段的含义和数据库中记录,字段的含义是相同的)
4、shell中$?表示函数的返回值,或进程的返回值。
5、awk中,FS表示字段分隔符(一列和一列之间的分隔符,默认是空格,可以修改),NF表示的当前记录有多少个字段,
RS表示记录分隔符(一行和一行之间的分隔符,默认是换行符,可以修改),NR表示已经读出的记录数。
等等,还有非常多的内容。
NF和$NF 区别问答:
1.awk中$NF是什么意思?
#pwd
/usr/local/etc
~# echo $PWD | awk -F/ '{print $NF}'
etc
NF代表:浏览记录的域的个数
$NF代表:最后一个Field(列)
2.awk下面的变量NF和$NF有什么区别?
{print NF} 也有{print $NF}
前者是输出了域个数,后者是输出最后一个字段的内容
如:~# echo $PWD | awk -F/ '{print $NF}'