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

linux——awk(7):awk数组详解awk中数组的使用。我们在其他语言中经常会使用到数组,awk中也可以使用。示例如下:与其他不同的是,awk中的数组元素值可以设置为”空字符串“,当设定某一个元素为”空字符串“时,打印出的值就是为”空“(注:”空格“不为”空“)。鉴于awk中,元素的值可以为”空“,我们就不能根据元素的值是否为”空“去判断元素是否存在了。另外即使在模式中没有提前设定某个字符的存在,如果print中进行了引用,…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数组运算:

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • animate.css 官方,animateCSS

    animate.css 官方,animateCSSanimateCSS是什么什么是animateCSS,AnimateCSSjQueryPluginanimateCSS官网:官网animateCSS文档:文档animateCSS源码仓库:源码仓库animateCSS下载地址:点此下载点此下载2animateCSS介绍、animateCSS使用AjQueryplugintodynamicallyapplyDanEden’sa…

  • mse均方误差计算公式_视觉SLAM十四讲实践之真实轨迹和估计轨迹均方根误差「建议收藏」

    mse均方误差计算公式_视觉SLAM十四讲实践之真实轨迹和估计轨迹均方根误差「建议收藏」为了理解RMSE首先介绍一些统计学的概念,然后介绍SLAM领域里面的计算精度ATE和RPE的用法。中位数一组数据按大小顺序排列,位于最中间的一个数据(当有偶数个数据时,为最中间两个数据的平均数)叫做这组数据的中位数。用中位数作为一组数据的代表,可靠性不高,但受极端数据影响的可能性小一些,有利于表达这组数据的“集中趋势”。众数几组数据中出现次数最多的那个数据,叫做这批数据的众数。用众…

  • MessageDigest详解

    MessageDigest详解一、概述java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如MD5或SHA算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。关于信息摘要和散列码请参照《数字证书简介》MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDigest对象通…

  • html table样式设计_html设置table中的字体

    html table样式设计_html设置table中的字体table.gridtable{font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width:1px;border-color:#666666;border-collapse:collapse;}table.gridtableth{border-width:1px;padding…

  • 皮尔森相关系数(Pearson correlation coefficient)「建议收藏」

    皮尔森相关系数(Pearson correlation coefficient)「建议收藏」概述定义物理意义皮尔森距离机器学习中的应用代码实现概述皮尔森相关系数也称皮尔森积矩相关系数(Pearsonproduct-momentcorrelationcoefficient),是一种线性相关系数,是最常用的一种相关系数。记为r,用来反映两个变量X和Y的线性相关程度,r值介于-1到1之间,绝对值越大表明相关性越强。定义总体相关系数ρ定义为两…

  • messagedigest 图片加密_MessageDigest 加密和解密2

    messagedigest 图片加密_MessageDigest 加密和解密2——————-解密—————————packagecom.drawthink.platform.util;importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmE…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号