Linux实用细节命令4,awk数据分析与过滤统计

img

基础语法

num符号语意
1FS指定分隔符,默认为空格
2$n分隔符的第n个字段
3$0读入整行的文本内容
4NF列数
5NR行数
num终端命令语意
1awk ‘{print $1,$2,$3}’ /etc/passwd打印第1,2,3列
2awk -F ‘{print $1,$2,$3}’ /etc/passwd打印第1,2,3列
3awk -F ‘{print NF}’ /etc/passwd打印列数
4awk -F ‘{print $NF}’ /etc/passwd打印最后一列
5awk -F ‘{print $(NF-1)}’ /etc/passwd打印倒数第2列
5awk -F ‘{print “输出中文”$1}’ /etc/passwd打印汉字
num符号语意
1BEGIN{}初始化
2{}逐行处理
3END{}结束处理
num终端命令语意
1awk ‘BEGIN{a=100;print a+12}’打印初始化后的计算结果
2awk ‘{BEGIN{x=0} /bash$/{x++} END{print x}’ /etc/passwd
3awk -F: ‘BEGIN {print NR} END{print NR}’ /etc/passwd打印开始、结尾行号
4awk -F: ‘{x++;print x}’ /etc/passwd打印行号

使用案例

num终端命令语意
1free | awk ‘/Mem/{print $NF}’ /etc/passwd监测内存信息
2df -h | awk ‘//$/{print $4}’ /etc/passwd监测磁盘信息
3LANG=C lscpu | grep “^CPU(s)” | awk -F: ‘{print $2}’输出cpu数
4LANG=C lscpu | grep "Mode | name " | awk -F: ‘{print $2}’输出Mode信息
5uptime | awk -F: ‘{print $NF}’输出15分钟负载
6ifconfig ens32grep “RX p”
7{awk ‘/Failed/{print $11}’ /var/log/secure打印日志暴力破解登录的IP地址

条件判断

num终端命令语意
1awk -F: ‘/^root/{print}’ /etc/passwd打印root开头的行
2awk -F: ‘ 7 !   / b a s h 7!~/bash 7! /bash/{print $1,$7}’ /etc/passwd打印结尾不是bash的第1,7列
3awk -F: ‘$1==“root”{print}’ /etc/passwd打印第1列是root的行
4awk -F: ‘$3>3000"{print}’ /etc/passwd打印第3列大于3000的行
5awk -F: ‘$3>=0 && $3<5 "{print}’ /etc/passwd打印第3列大于等于0且小于5的行
6awk -F: ‘$1==’“root” || $3>=0 "{print}’ /etc/passwd打印第1列是root或第3列大于等于0的行
7awk ‘$NR%2==0’ /etc/passwd打印偶数行

流程控制

num终端命令语意
1awk -F: ‘{if($3>=1000){x++} END{print x}}’ /etc/passwd打印第3列大于1000的行
2awk -F: ‘if($1==“root”){print $1,$3}’ /etc/passwd打印第1列是root的第1,3列
3uptime | awk -F: ‘{if($NF >=0.01){pirnt “Cpu load :” $NF }’ /etc/passwd打印Cpu的负载大于0.1的值
4ls -l /etc | awk -F: ‘{if($1~/^-/){x++}else {y++}) END{}}’如果开头是- 就x++,否则y++
5awk ‘{BEGIN{for(i=5;i+=1;i-=2){print i}}’打印5 3 1

数组

num终端命令语意
1awk ‘BEGIN{name[0]=“root”;name[1]=“one”;print name[0],name[1]}’打印数组
2awk ‘BEGIN{name[“root”]=20;name[“one”]=33;print name[“root”],name[“one”]}’打印数组
3awk ‘BEGIN{x[0]=0;x[1]=1;x[2]=2;for(i in x) {print i,x[i]}}’打印数组
4awk ‘{IP[$1]++} END{for(i in IP ) print i,IP[i]}’打印统计IP地址个数

综合案例

num终端命令语意
1ss -s | awk ‘$1=="UDP"print {$2}’打印udp个数
2ss -s | awk ‘$1=="TCP"print {$2}’打印tcp个数
3ss -antlp | awk ‘i++ END{print i}’打印监听个数
4ss -antp | awk ‘/^ESTAB /i++ END{print i}’打印建立连接个数
4ss -antpH | awk ‘/^TIME_WAIT /i++ END {print i}’打印time-wait个数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屯门山鸡叫我小鸡

加油

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值