欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

AWK的数组

发布时间:2025/4/5 编程问答 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 AWK的数组 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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会把他们识别为相同的下标,所以只会保留最后一个下标的值。

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


你是否看懂了?

不懂必须来找我。



转载于:https://blog.51cto.com/xiaofengmo/1750093

总结

以上是生活随笔为你收集整理的AWK的数组的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。