awk 数组定义赋值
array[1]=abc;
arrray[2]=efg;
在命令行定义打印数组
[root@localhost ]# awk 'BEGIN{array[1]="abc";array[2]="efg";for(key in array) print key,array[key]}'
1 abc
2 efg
[root@localhost ]#
[root@localhost ~]# echo qw> /home/a.log
[root@localhost ~]# awk '{array[1]="abc";array[2]="efg";}END{for(key in array) print key,array[key]}' /home/a.log ##后跟任意文件才能输出结果
1 abc
2 efg
脚本打印数组
[root@localhost ~]# vim awk_sh.sh
#!/bin/awk
BEGIN{
array[1]="abc";
array[2]="efg";
for(key in array)
print key,array[key];
}
[root@localhost ~]# awk -f awk_sh.sh ## -f 执行脚本文件
1 abc
2 efg
BEGIN与END的作用是给程序赋予初始状态和程序结束后执行扫尾的工作;任何在BEGI 之后列出的操作({}内)awk开始扫描输入之前执行,END扫描全部的输入之前执行结束之后执行。通常使用BEIN来显示变量和初始化变量,使用END来输出最后的结果。