awk编程——数组
来源:互联网 发布:linux回到家目录 编辑:程序博客网 时间:2024/05/21 07:00
数组
定义数组
aa=(1 2 3 4 5 6)
这些值会存储在以0为起始索引的连续位置上
aa[1]="www"
aa[2]="sss"
数组的第一个值、第二个值,以此类推。
关联数组
关联数组是指数组的索引不仅仅是数字,也可以是字符串,关联数组在索引和数组元素值之间建立起关联,对每一个数组元素,awk自动维护了一对值:索引和数组元素值。关联数组的值无需以连续的地址进行存储。awk的所有数组都是关联数组。
如:array[09]制定一个数组值,如果换成array[9]就不能指定与array[09]相同的值。
[root@ns1 ~]# awk 'BEGIN{data[10.15]="1200";CONVFMT="%d";printf("<%s>\n",data[10.15])}'<> #所以此处结果输出为空值
split函数
split(a,b,c)函数将字符串以c为分隔符,将a字符串拆分为字符串数组元素存放在b中
split函数用法
[root@ns1 ~]# awk 'BEGIN {print split("abc/def/xyz",str,"/")}'3 #将字符串分成了3个元素
[root@ns1 ~]# cat array.awk #!/bin/awk -fBEGIN {FS=" "}{split($1,name,",");for(i in name) print name[i]} #用for循环将name数组的内容打印出来[root@ns1 ~]# cat swli hao ss sssssssssszhang ju ss sssssssssswang bin ss ssssssssssszhu lin ss ssssssssss[root@ns1 ~]# ./array.awk swlizhangwangzhu
数组形式的系统变量
awk系统变量中有两个变量是以数组的形式提供的:ARGV和ENVIRON。ARGC是ARGV数组中元素的个数,从ARGV[0]开始,到ARGV[ARGC-1]结束。
#下面是脚本及素材内容
[root@ns1 ~]# cat ss.awk #!/bin/awk -f BEGIN {FS=","; if(ARGC>2) { #ARGC未定义默认为0,小于2进入循环 name=ARGV[1]; delete ARGVp[1] } else { while(!name){print "enter a name"; getline name< "-"} #利用getline函数将输入值赋给name变量 } }$1~name {print $1,$3} #第一个域与姓名模糊匹配,成功输出第一、三个域[root@ns1 ~]# cat swli hao,ss,11111111111zhang ju,ss,2222222222wang bin,ss,33333333333zhu lin,ss,44444444444
#下面是脚本执行结果[root@ns1 ~]# ./ss.awk swenter a nameli haoli hao 11111111111
0 0
- awk编程——数组
- SHELL学习笔记——awk编程
- awk编程——内置字符串函数
- Linux下Shell编程——awk编程
- Linux下Shell编程——awk编程
- awk数组介绍——多文件处理
- awk数组
- awk 数组
- awk数组
- awk 数组
- awk 数组
- awk 数组
- awk 数组
- Shell编程第十七弹——使用awk过滤文本
- awk编程——调用方式和分隔符
- awk编程
- awk编程
- awk 编程
- VS2010调试快捷键
- oracle REGEXP_SUBSTR实现字符串转列
- 数字证书与数字签名是如何运作的
- centos6.5安装tomcat8.0.9
- for in遍历和for 循环
- awk编程——数组
- DOM4J介绍与代码示例
- jsp forward 动作标签
- CTime以及其它时间差 DateTimePicker控件
- Matlab的imfilter函数用法
- POJ 1122 FDNY to the Rescue!
- Ogre 渲染过程
- Qt打开任意文件的方法
- windows 下mysql忘记root密码