linux——awk(7):awk数组详解
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数组详解相关推荐
- Ubuntu (Linux) 系统 find 命令详解
Ubuntu (Linux) 系统 find 命令详解 在Ubuntu (Linux)系统的终端上,虽然没有像 windows 上那样简介易用的图形界面 搜索工具,但只要你使用足够熟练, 有一个强大命 ...
- linux之去重uniq命令详解
linux之去重uniq命令详解 uniq是对文本文件进行行去去重的工具. 以行为单位,进行行与行之间的字符串比较并进行去重 只能对有序的文本行进行有效去重,所以常与sort命令结合使用 参数 解释 ...
- Linux上的free命令详解
Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上f ...
- linux中which命令详解,Linux下which命令使用详解(转)
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...
- linux内核管道pipe实现详解
linux内核管道pipe实现详解 (文件系统暂时不是很了解,文件系统部分暂时不做解释,此文仅解释关键流程,系统调用部分请参考前面已经发布的文章,这里不做展开) 1.管道系统调用(SyS_pipe) ...
- 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解
[linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...
- linux ps(process status) 命令详解
linux ps(process status) 命令详解 功能说明:报告程序状况. 语 法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名称> ...
- Linux操作系统上lsof命令详解
Linux操作系统上lsof命令详解 2011-10-08 18:31:31 http://xjsunjie.blog.51cto.com/999372/682865 标签:Linux lsof命令 ...
- linux slocate(secure locate) 命令详解
linux slocate(secure locate) 命令详解 功能说明:查找文件或目录. 语 法:slocate [-u][--help][--version][-d <目录>][查 ...
- (传送门)linux命令总结dd命令详解
linux命令总结dd命令详解 https://www.cnblogs.com/ginvip/p/6370836.html 懒癌末期,不想花时间拷贝内容+排版,而且,原文排版就已经很棒了,我在这里只是 ...
最新文章
- bzoj1257 数学整理二分查询
- 内存监控及报警shell脚本
- [css] 举例说明实现圆角的方式有哪些?
- Unity3D 渲染统计窗口
- 网络-网络编程模型步骤
- 使用.net开发并生成Windows服务安装包
- 打印准考证服务器异常显示,2020准考证打印30个常见问题汇总及解决办法
- AJAX请求中payload和formdata两种方式
- Alter table alter |change |modify 区别
- 02 python入门
- oracle的成本核算,ORACLE-EBS-最新成本管理手册
- 计算机方向键不能使用,电脑键盘中的数字按键不能用是什么原因?
- Oracle 查询重复字段
- 深度迁移度量网络 Deep Transfer Metric Learning
- 1467 acm 矩阵不同行列的和
- 英雄算法联盟 - 六月集训排行榜 (截止今日第31天)
- [SV]SystemVerilog学习笔记之struct union
- 一款彩票app的制作运营详解
- 操作系统--时间片轮转调度算法(RR算法)
- LeetCode-91.解码方法