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

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

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

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

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

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

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

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

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

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

数组运算:

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

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

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

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

linux——awk(7):awk数组详解相关推荐

  1. Ubuntu (Linux) 系统 find 命令详解

    Ubuntu (Linux) 系统 find 命令详解 在Ubuntu (Linux)系统的终端上,虽然没有像 windows 上那样简介易用的图形界面 搜索工具,但只要你使用足够熟练, 有一个强大命 ...

  2. linux之去重uniq命令详解

    linux之去重uniq命令详解 uniq是对文本文件进行行去去重的工具. 以行为单位,进行行与行之间的字符串比较并进行去重 只能对有序的文本行进行有效去重,所以常与sort命令结合使用 参数 解释 ...

  3. Linux上的free命令详解

    Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上f ...

  4. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

  5. linux内核管道pipe实现详解

    linux内核管道pipe实现详解 (文件系统暂时不是很了解,文件系统部分暂时不做解释,此文仅解释关键流程,系统调用部分请参考前面已经发布的文章,这里不做展开) 1.管道系统调用(SyS_pipe) ...

  6. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

    [linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...

  7. linux ps(process status) 命令详解

    linux ps(process status) 命令详解 功能说明:报告程序状况. 语 法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名称> ...

  8. Linux操作系统上lsof命令详解

    Linux操作系统上lsof命令详解 2011-10-08 18:31:31 http://xjsunjie.blog.51cto.com/999372/682865 标签:Linux lsof命令 ...

  9. linux slocate(secure locate) 命令详解

    linux slocate(secure locate) 命令详解 功能说明:查找文件或目录. 语 法:slocate [-u][--help][--version][-d <目录>][查 ...

  10. (传送门)linux命令总结dd命令详解

    linux命令总结dd命令详解 https://www.cnblogs.com/ginvip/p/6370836.html 懒癌末期,不想花时间拷贝内容+排版,而且,原文排版就已经很棒了,我在这里只是 ...

最新文章

  1. bzoj1257 数学整理二分查询
  2. 内存监控及报警shell脚本
  3. [css] 举例说明实现圆角的方式有哪些?
  4. Unity3D 渲染统计窗口
  5. 网络-网络编程模型步骤
  6. 使用.net开发并生成Windows服务安装包
  7. 打印准考证服务器异常显示,2020准考证打印30个常见问题汇总及解决办法
  8. AJAX请求中payload和formdata两种方式
  9. Alter table alter |change |modify 区别
  10. 02 python入门
  11. oracle的成本核算,ORACLE-EBS-最新成本管理手册
  12. 计算机方向键不能使用,电脑键盘中的数字按键不能用是什么原因?
  13. Oracle 查询重复字段
  14. 深度迁移度量网络 Deep Transfer Metric Learning
  15. 1467 acm 矩阵不同行列的和
  16. 英雄算法联盟 - 六月集训排行榜 (截止今日第31天)
  17. [SV]SystemVerilog学习笔记之struct union
  18. 一款彩票app的制作运营详解
  19. 操作系统--时间片轮转调度算法(RR算法)
  20. LeetCode-91.解码方法

热门文章

  1. mysql密码过期设置
  2. 六大视频网站播放清晰度比较
  3. java中带参数匿名内部类_Java内部类之匿名内部类
  4. 黄聪:SEO是什么意思?
  5. Eclipse突然崩溃或电脑突然断电后,代码丢失找回
  6. TFT_eSPI使用
  7. (一)反向传播算法理解 (Back-Propagation)
  8. ubuntu 安装samba 服务
  9. 【系统认识张量(一)】基础篇:什么是张量?
  10. 全球定位系统的50种用途或应用