awk-数组的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk-数组的使用相关的知识,希望对你有一定的参考价值。
###################################################首先来熟悉下数组的概念:
1)数组名称:数组名称里不能有变量
2)数组元素:一个数组变量里面含有多个元素(值)
3)起始位置:从0号位开始
.
定义数组变量:# a=(11 22 33 44)
.
查看数组的值:# echo ${a[0]} 结果:11
###################################################
实验目标:
统计a.txt下不同IP地址出现的次数。
.
实验环境:
cat a.txt
192.168.1.1
192.168.2.2
192.168.1.1
192.168.3.3
192.168.2.2
192.168.1.1
结果: # awk ‘{IP[$1]++}END{for(i in IP){print i,IP[i]}}‘ a.txt
.
过程解析:
第一部分:IP[$1]++
IP:定义的一个数组变量IP,数据变量IP的下标名取不同的IP地址(awk中下标名可以是字符串)
[$1]:这里的$1是对a.txt的第一列进行取值。(之所以可以实现循环取值,是因为awk逐行读取的机制)
++:当a[0]=1时,a[0]++结果为2
所以IP[$1]++过程如下:
IP[192.168.1.1] 1
IP[192.168.2.2] 1
IP[192.168.1.1] 2
IP[192.168.3.3] 1
IP[192.168.2.2] 2
IP[192.168.1.1] 3
第二部分:{for(i in IP){print i,IP[i]}
for(i in IP):这里i取值取的是数组变量IP的下标名,即:不同的ip地址
{print i,IP[i]}:最后我们希望看到的是【ip地址】和【数量】,所以打印【i值】和【元素IP[i]】
以上是关于awk-数组的使用的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”