文章目录
正则匹配
- //支持扩展正则
- awk可以精确到某一列,某一列中包含/不包含…内容
- ~包含,!~不包含
正则 | awk正则 | 写法 |
^表示以…开头的行 | 某一列的开头 | $3~/^oldboy/ |
$表示以…结尾的行 | 某一列的结尾 | $4~/lidao$/ |
^$表示空行 | 某一列是空的 (少用) | ^$ |
- 第三列以1开头的
- 第三列以2开头的,并打印1、3和最后一列
- 第三列以1或2开头的,并打印1、3和最后一列
范围匹配
写法 | 含义 |
/sss/,/eee/ | 从sss开始,到eee结束(多用) |
NR==1,NR==5 | 从第一行开始到第5行结束,类似于 |
- 找出日志access.log中从11:02:00到11:02:30的ip地址、用户访问的URI、状态码、数据包大小
特殊模式BEGIN{}和END{}
模式 | 含义 | 应用场景 |
BEGIN{} | 里面的语句会在awk读取文件前执行 | 1)进行简单统计计算,不涉及读取文件(常见) 2)处理文件前,添加表头(少用) 3)用来定义awk变量(少用),因为可以用-v |
END{} | 里面的语句会在awk读取文件后执行 | 1)awk进行统计,一般过程:先进行计算,最后END里面输出结果(常见) 2)awk使用数组,用于输出数组结果(常见) |
END{}统计方法
统计方法 | 简写形式 | 功能 |
i=i+1 | i++ | 计数,统计次数 |
sum=sum+??? | sum += ??? | 求和 |
使用awk求和