本文主要是介绍【数组遍历企业常用】【普通数组】【真实案例 关联数组】【wc -l 统计行数】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 数组遍历--用来统计网站日志的访问量。
- 普通数组
- 真实案例 关联数组
数组遍历–用来统计网站日志的访问量。
++i:从1开始加,运算在赋值
i++: 从0开始加,赋值在运算
#按索引遍历:
普通数组
1.先创建一个test文件,统计用户的数量
vim test.txt #将文件内容的第一个字段作为数组的值,通过索引获取到值
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
固定语法;cat test.txt | awk -F":" ‘{username[x++]=$1} END{for(i in username) {print i,username[i]}}’
可改 可改 其他固定的 语法
0 root
1 bin
#注意:变量i是索引
图片详解
真实案例 关联数组
语法都是固定的 直接套用,查你想查的对应列
#把要统计的对象作为索引,最后对他们的值进行累加,累加出来的这个值就是你的统计数量
图片详解
- 统计/etc/passwd中各种类型shell的数量
语法; cat /etc/passwd | awk -F: ‘{shells[$NF]++} END{ for(i in shells){print i,shells[i]} }’
可改 其他固定的 语法
2.统计nginx日志出现的状态码
语法; cat access.log | awk ‘{stat[$9]++} END{for(i in stat){print i,stat[i]}}’
3.统计当前nginx日志中每个ip访问的数量
语法; cat access.log | awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]}}’
4.统计某一天的nginx日志中的不同ip的访问量
语法; cat access.log |grep ‘28/Sep/2019’ | awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]}}’
5.统计nginx日志中某一天访问最多的前10个ip
语法; cat access.log |grep ‘28/Sep/2019’ | awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]}}’ |sort -k2 -rn | head -n 10
sort:排序,默认升序
-k:指定列数
-r:降序
-n:以数值来排序
6.统计tcp连接的状态—下去自己查各个状态,包括什么原因造成的!
语法; netstat -n | awk ‘/^tcp/ {tcps[$NF]++} END {for(i in tcps) {print i, tcps[i]}}’
LAST_ACK 5 (正在等待处理的请求数)
SYN_RECV 30
ESTABLISHED 1597 (正常数据传输状态)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)
这篇关于【数组遍历企业常用】【普通数组】【真实案例 关联数组】【wc -l 统计行数】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!