高手们帮我看看这个对不对阿?总是犯迷糊..
时间:2011-05-03
来源:互联网
本帖最后由 南极雨 于 2011-05-03 20:39 编辑
讨论的是:awk 数组中的各个值的问题,如数组的值,数组下标index的值,数组元素的值,迷迷糊糊的
awk 数组中所定义的数组以哪一格域为下标,则数组则代表这一域
如name[$2] 则将$2 这一列组合成一数组,如果赋值,则代表所赋值组合成的数组,例如: name[$2]=$1
则name是由$1这一列组成的数组,如果,name[$2]=1,则根据NR的值组成NR个由1组成的数组,每个元素用name[NR]表示,每个name[NR]=1,看下面的例子:
复制代码
name这个数组名则无法直接打印:
复制代码
然而,for(i in name) i则表示的是name[$x]中的x这一列,因为x在此是下标,就是$x,如:
复制代码
END 语句中,name数组仍然表示的是$2,并不改变,而name 的值会是1,i的值为$2的值,则i为name的下标,name["42"]=42 name["434"]=434....
讨论的是:awk 数组中的各个值的问题,如数组的值,数组下标index的值,数组元素的值,迷迷糊糊的
awk 数组中所定义的数组以哪一格域为下标,则数组则代表这一域
如name[$2] 则将$2 这一列组合成一数组,如果赋值,则代表所赋值组合成的数组,例如: name[$2]=$1
则name是由$1这一列组成的数组,如果,name[$2]=1,则根据NR的值组成NR个由1组成的数组,每个元素用name[NR]表示,每个name[NR]=1,看下面的例子:
- [root@localhost awk]# cat file
- 1214 42 5 34 543 54
- 2323 434 43 34 434 44
- 122 32
- 1213 324 4345 456 56 77
- 1233 q3 we23 <F2>2342 2342
- 213 213 546 798 987 654
-
- [root@localhost awk]# awk '{name[$0]=$1};END{for(i in name) print name[i]}' file
- 122
- 2323
- 1233
- 1213
- 213
- 1214
- [root@localhost awk]# awk '{name[$0]=1};END{for(i in name) print name[i]}' file
- 1
- 1
- 1
- 1
- 1
- 1
- [root@localhost awk]# awk '{name[$2]=1};END{for(i in name) print name}' file
- awk: (FILENAME=file FNR=6) fatal: attempt to use array `name' in a scalar context
- [root@localhost awk]# awk '{name[$2]=1};END{for(i in name) print i}' file
- 324
- q3
- 32
- 42
- 213
- 434
作者: 南极雨 发布时间: 2011-05-03
name["42"]=42是想表达什么意思?
作者: Shell_HAT 发布时间: 2011-05-03
for (i in name)
表示变量i遍历数组name下标
如后面跟print i,则把数组所有下标打印一遍
如后面跟print a[ i ],则把数组所有下标对应的数组值打一遍
表示变量i遍历数组name下标
如后面跟print i,则把数组所有下标打印一遍
如后面跟print a[ i ],则把数组所有下标对应的数组值打一遍
作者: ywlscpl 发布时间: 2011-05-03
看不懂
作者: ziyunfei 发布时间: 2011-05-03
回复 南极雨
如果建立了name数组的话,是不能直接print name的,因为awk不允许再将name作为一个变量名(print name时,awk认为是打印变量name的值),所以会报错。
如果建立了name数组的话,是不能直接print name的,因为awk不允许再将name作为一个变量名(print name时,awk认为是打印变量name的值),所以会报错。
作者: yinyuemi 发布时间: 2011-05-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28