sed过滤日志时间段信息
[root@m01 scripts]# awk '/11:02:00/,/11:05:00/{print}' access.log
sed -n '/11:02:00,11:59:00/p' access.log
[root@m01 scripts]# echo {1..10} |sed -r 's#[0-9]+#<&>#g'
<1> <2> <3> <4> <5> <6> <7> <8> <9> <10>
[root@m01 scripts]# echo {1..10}|xargs -n1|sed -r 's#(.*)#\<\1\>#g'
[root@m01 scripts]# seq 10|sed -r 's#(.*)#\<\1\>#g'
awk
**#RS 每一行结束标记 默认是回车**
awk -vRS='/' '{print NR,$0}' /etc/passwd
内置变量
利用第三方变量交换输出、etc/passwd的7123456
# 取出/etc/passwd 中第3列 大于0并且小于1000的行
[root@manager ~]# awk -F: '$3>0 && $3<1000' /etc/passwd
取出磁盘使用高于2%的数据,对齐
在这里插入图片描述
[root@manager ~]# **#取出 /etc/passwd中第3列 以数字1或0开头的行**
[root@manager ~]# awk -F: '$3 ~ /^[01]/' /etc/passwd
计算日志文件中图片信息所使用的流量总和
输出加菜单栏BEGIN
awk取范围 行 列
[root@m01 scripts]# sed -n '1,3p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
2020年 01月 17日 星期五 14:49:14 CST
[root@m01 scripts]# awk 'NR==1,NR==3' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
2020年 01月 17日 星期五 14:49:39 CST
awk-----if for
if单分支
匹配文件中{}中含有sun的字符串个数
[root@m01 scripts]# awk '/{/,/}/' awk_sun.txt |awk '/sun/'|wc -l
4
[root@m01 scripts]# awk ‘/{/,/}/{if(/oldboy/)i++}END{print i}’ awk_oldboy.txt
4
2020年 01月 17日 星期五 15:15:39 CST
for
awk循环计算1-100
[root@m01 scripts]# awk 'BEGIN{for(i=1;i<=10;i++)sum+=i;print sum}'
55
2020年 01月 17日 星期五 15:26:08 CST
[root@m01 scripts]# awk 'BEGIN{for(i=1;i<=100;i++)sum+=i;print sum}'
5050
awk循环没有do和done所以循环的是最近的一条语句
计算第二列到第六列和以及平均数
awk数组+循环
[root@m01 scripts]# awk 'BEGIN{ array[0]="yes" ; array[1]="no"; for(n in array) print array[n] }'
yes
no
取日志访问最多的ip次数
[root@m01 scripts]# awk '{a[$1]++}END{for(n in a) print n,a[n]}' access.log |sort -rnk2|head
58.220.223.62 12049
112.64.171.98 10856
114.83.184.139 1982
117.136.66.10 1662
115.29.245.13 1318
223.104.5.197 961
116.216.0.60 957
180.111.48.14 939
223.104.5.202 871
223.104.4.139 869
统计ip使用的流量
[root@manager ~/file]# awk '{a[$1]=a[$1]+$10}END{for(n in a) print n,a[n]}' access.log |sort -rnk2|head
114.83.184.139 31362956
117.136.66.10 22431302
116.216.30.47 21466000
223.104.5.197 21464856
116.216.0.60 19145329
dos2unix 转换回车