gawk中使用自定义变量和字典
1 自定义变量
gawk中也可以自己定义一些变量,在使用变量的时候不需要加美元符号
。比如在gawk中定义并打印字符串:
gawk 'BEGIN{str="Wu lin wai zhuan";print str}'
运行后输出结果为:
Wu lin wai zhuan
gawk中也可以使用数学运算,如输入:
gawk 'BEGIN{x=4;x=x*x+4;print x}'
运行后结果为:
20
2 gawk中使用字典
gawk中能够定义字典,类似于C++中的map一样,比如输入:
gawk 'BEGIN {city["JiangSu"]="NanJing";city["JiangXi"]="NanChang";print city["JiangSu"]}'
运行后输出结果为:
NanJing
当然,也可以用数字,比如:
gawk 'BEGIN{array[1]=3;array[2]=5;multi=array[1]*array[2];print multi}'
运行后输出结果为:
15
同时,也可以使用迭代语句来读取字典中的值。gawk中使用for语句来取出字典中的数据,不过每次取出的都是字典中key值。比如输入:
gawk 'BEGIN{dict["a"]=1;dict["b"]=2;dict["c"]=3;dict["d"]=4;for (idx in dict){print "index", idx,"value",dict[idx]}}'
运行后结果为:
index a value 1
index b value 2
index c value 3
index d value 4
注意index的返回值没有规律,也就是说多次执行的时候可能index返回的顺序并不相同。同时也可以删除字典中的一个对象,比如输入:
gawk 'BEGIN{dict["a"]=1;dict["b"]=2;dict["c"]=3;dict["d"]=4;delete dict["d"];for (idx in dict){print "index", idx,"value",dict[idx]}}'
运行后结果为:
index a value 1
index b value 2
index c value 3