sed+awk扩展

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 转换回车

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值