首页 > 编程语言 > 详细

AWK的数组

时间:2016-03-12 06:56:20      阅读:285      评论:0      收藏:0      [点我收藏+]

awk的数组很神奇,我的感觉。

awk的数组可以使用数字当索引,可以使用字符串来当索引


1、使用数字做下标

info[1]="one"

info[2]="two"

info[3]="three"


[xiaomo@ArchLinux ~]$ echo ‘one two three‘ | awk ‘{info[1]=$1;info[2]=$2;info[3]=$3;print info[1],info[2],info[3]}‘

one two three

[xiaomo@ArchLinux ~]$ 



2、使用字符串(下标不加引号)做下标

info[one]="awk"

info[two]="sed"

info[three]="grep"


[xiaomo@ArchLinux ~]$ echo "awk sed grep" | awk ‘{info[one]=$1;info[two]=$2;info[three]=$3;print info[one],info[two],info[three]}‘

grep grep grep

[xiaomo@ArchLinux ~]$ 

看到它们之间的不同了吗?如果使用字符串(下标不加引号)做下标,只会保留最后一个下标的值。


3、使用字符串(下标加引号)做下标

info["one"]="awk"

info["two"]="sed"

info["three"]="grep"


[xiaomo@ArchLinux ~]$ echo "awk sed grep" |awk ‘{info["one"]=$1;info["two"]=$2;info["three"]=$3;print info["one"],info["two"],info["three"]}‘

awk sed grep

[xiaomo@ArchLinux ~]$ 

这次又不同了, 如果使用字符串(加上引号)做下标,结果都是单独保存下来了。

那么来看看下面的吧。

[xiaomo@ArchLinux ~]$ echo "awk sed grep ls" \

awk ‘{info["one"]=$1;info["two"]=$2;info["three"]=$3;info["three"]=$4;print info["one"],info["two"],info["three"],info["three"]}‘

awk sed ls ls

[xiaomo@ArchLinux ~]$ 


你是否已经晕了呢?

别着急,其实很简单而已。

使用字符串(不加引号)当下标,awk会把他们识别为相同的下标,所以只会保留最后一个下标的值。

使用字符串(加引号)当下标则相反,不会识别为相同的下标。但是呢,如果字符串(加引号)当下标,遇到相同的下标一样会只保留最后一个下标的值。


你是否看懂了?

不懂必须来找我。



本文出自 “小莫” 博客,请务必保留此出处http://xiaofengmo.blog.51cto.com/10116365/1750093

AWK的数组

原文:http://xiaofengmo.blog.51cto.com/10116365/1750093

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!