awk 学习笔记
|大于| $4 > 1024
<= |小于等于| $5 <= 10
= |大于等于| $6 >= 5
~ |正则匹配| $1 ~ /^root/
!~ |正则不匹配| $1 !~ /^ /
3范围模式
awk -F: '/开头/,/结尾/'
4 BEGIN 读取文件前
5 END 读取文件后
awk脚本编程
1.变量
awk -v user=zhima 'END{print user}' /var/log/nginx/access.log
2 判断
awk '{if(条件){动作} }'
awk '{if (条件) {动作} else {动作}}'
配合END模式
awk '{if ($3==0){i++} else{z++}}END{print "i的数量"; print "z的数量"z。}' passwd.txt
3 循环
while循环
语法 while(条件){动作}
列 {i=1;while(i<=10){print $0;i++}}
for循环
for (i=1;i<10;1++){动作}
4数组
{username[x++]=$1 }END{for (i in username){print i,username[i]}}
数组是索引和值组成的 username[索引 可以填固定的数字也可以填自增] = 值(索引对应的内容)for (i in username (就是从头开始索引,有多少索引执行几次){print i,username[i] 输出索引和内容 } )
awk -F: '{count[$NF]++} END{for (s in count) print s, count[s]}' /etc/passwd 常用计数\
count[$NF]++ 索引变成了$NF 值是++也就是出现的次数
count[$NF(最后一列的值)++ ]