前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux——awk(7):awk数组详解

linux——awk(7):awk数组详解

作者头像
全栈程序员站长
发布2022-09-09 10:13:59
4.9K0
发布2022-09-09 10:13:59
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

awk中数组的使用。我们在其他语言中经常会使用到数组,awk中也可以使用。示例如下:

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

与其他不同的是,awk中的数组元素值可以设置为”空字符串“,当设定某一个元素为”空字符串“时,打印出的值就是为”空“(注:”空格“不为”空“)。鉴于awk中,元素的值可以为”空“,我们就不能根据元素的值是否为”空“去判断元素是否存在了。另外即使在模式中没有提前设定某个字符的存在,如果print中进行了引用,那将会自动创建该元素,默认值为空。

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

那在awk中如何判断元素的存在呢:

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

可以使用if(下标 in 数组名),从而判断数组元素是否存在,如上所示,虽然test[1]=””,但是该数组元素依旧存在,只是为”空“。test[3]不存在所以没有print出”AAAAAA“,如果直接print test[3]则会默认将该元素设定为”空“。

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

同时可以用”!“给上述判断取反。

在awk中,数组的下标不仅可以为”数字“,还可以为”任意字符“。

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

使用delete可以删除awk中的数组或者删除整个数组,例子如下:

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

可以用循环输出数组中的所有元素:

代码语言:javascript
复制
#for循环语法格式1
for(初始化,布尔表达式;更新){
//代码语句
}

#for循环语法格式2
for(变量 in 数组){
//代码语句
}

注意,两种都能遍历输出数组中的元素,不过第一种for循环语法只能够输出以数字作为下标的数组,示例如下:

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

数组运算:

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

在awk中可以进行数值运算,如果a有数值,则可以直接使用;如果a初始值默认设定为字符串或者空值,则计算时默认为0.之前我们如果引用了一个不存在的元素时,在print时候发现这个元素被赋值为空字符串。由上面可知,如果初始值为空值时,对元素进行自加运算,元素的值就变成了1.

综上,我们对一个不存在的元素进行自加运算后,这个元素的值就变成了自加运算的次数。例子如下:

统计某些文本出现的次数。

linux——awk(7):awk数组详解
linux——awk(7):awk数组详解

参考:http://www.zsythink.net/archives/2093

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161650.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档