引言
- 本文主要介绍AWK中表达式的定义以及其他的一些内置变量(不包含前面已经介绍的常用内置变量),仅供参考。
- 本文介绍的主要是内置变量ARGV与ARGC
表达式
- 顾名思义,表达式个人理解其实就是awk代码,组成上无非就是包含常量,变量,运算符和函数构成。
- 字段变量:通俗讲就是前面的那个field的字段号,使用
$字段号来引用字段,这种的叫字段变量,如下图
- 字段变量:通俗讲就是前面的那个field的字段号,使用
- 注:AWK中的变量有三种类型,除了有用户定义的变量还有内置变量,还有字段变量,其中内置变量是需要全部大写的
awk中的变量是无类型的,并不一定必须要被声明或者被初始化,其默认的值是空字符串,只是在某些上下文上会隐式的自动转换成数字0(例如数学运算)
- 除了上述变量外,还有一种算是特殊的变量:数组
- 创建方法
array[index]=value - 使用方法:可以使用在for循环中也可以使用在if判断中,但是需要注意的是都必须加上括号
for (item in array)
- 创建方法
内置变量ARGV与ARGC
- 首先这两个都是内置变量,用于处理命令行参数
- ARGC是一个整数变量,表示当前awk命令执行时所传递的命令行参数的个数。它包括awk命令本身,因此ARGC的最小值为1
- ARGV是一个数组变量,包含当前awk命令执行时所传递的所有命令行参数。ARGV数组中的第一个元素是awk命令本身,后面的元素是其他命令行参数
- 通过下图,通俗解释就是ARGC就是负责统计awk命令行参数个数,而ARGV就是用来把命令行参数归结到数组中
awk -va=1 -F: '
BEGIN{
print ARGC;
for(i in ARGV){
print "ARGV[" i "]= " ARGV[i]
}
}' b=3 a.txt b.txt
- 除此之外两个内置变量还可以搭配做到增删改查的效果(有点抽象,下一篇再做详细介绍把,本文先简单介绍一下定义和简单用法)