您的位置:首页 > 其它

awk数组

2018-08-23 15:48 99 查看

1.1 wk数组

1. 取出/etc/passwd中uid在1到500之间的用户名和uid号码awk -F: '$3>=1 && $3<500{print $1,$3}' /etc/passwd2. 显示系统最近一分钟 五分钟 十五分钟的负载w |awk -F'[ ,]+' '/load/{print $(NF-2),$(NF-1),$NF}'3. 显示你系统中所有的非虚拟用户的用户名和使用的shell并统计数量awk -F: '/bash$/{i++;print $1,$NF}END{print i}' passwd.txt4. 统计Secure(给大家发送的)文件每个ip地址破解你密码次数显示前十名sort -rnk2#-r 逆序 #-n 按照数字 顺序排序#-k 根据某一列的内容排序[root@oldboy50-01 /server/files]# awk '/Failed/{h[$(NF-3)]++}END{for(i in h) print i,h[] }' secure-20161219|sort -rnk2 |column -t|head218.65.30.25 68652218.65.30.53 34326218.87.109.154 21201112.85.42.103 18065112.85.42.99 17164218.87.109.151 17163218.87.109.150 17163218.65.30.61 17163218.65.30.126 17163218.65.30.124 171635.统计Secure中每个用户破解的次数[root@oldboy50-01 /server/files]# awk '/Failed/{h[$(NF-5)]++}END{for(i in h) print i,h[] }' secure-20161219|sort -rnk2 |column -t|headroot 364610admin 733user 246oracle 119support 104guest 79test 70ubnt 47pi 41webadmin 366.统计access.log中所有流量总和(第10列)[root@oldboyedu50-lnb /server/files]# awk '{sum=sum+$10}END{print sum/1024^3}' access.log2.30828i=i+1 == i++ 统计次数 wc -li=i+$1 == i+=$1 求和 累加 1+2+3...+100

1.2 awk中循环与判断

1.2.1 shell编程

判断 if [ ];then xxxxfi

1.2.2 awk中的

if(NR==1)print $0if(NR==1) print $0[root@oldboyedu50-lnb /server/files]# awk 'NR==1' reg.txtZhang Dandan 41117397 :250:100:175[root@oldboyedu50-lnb /server/files]# awk '{if(NR==1) print}' reg.txtZhang Dandan 41117397 :250:100:175实例1-1 统计{}中包含oldboy的行行数[root@oldboyedu50-lnb /server/files]# awk '/{/,/}/' range.txt{lidaooldboyalexoldboy oldboy}{lidaooldboyalexoldboy oldboy}{lidaooldboyalexoldboy oldboy}实例1-2 统计{}中包含oldboy的行行数[root@oldboyedu50-lnb /server/files]# awk '/{/,/}/{if(/oldboy/) i++}END{print i}' range.txt6

1.3 awk循环

1.3.1 shell编程

for((i=1;i<=100;i++))do echo $idone

1.3.2 awk

for(i=1;i<=100;i++)命令 awk 'BEGIN{for(i=1;i<=100;i++)sum=sum+i ;print sum}'实例1-3 处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)http://www.etiantian.org/index.htmlhttp://www.etiantian.org/1.htmlhttp://post.etiantian.org/index.htmlhttp://mp3.etiantian.org/index.htmlhttp://www.etiantian.org/3.htmlhttp://post.etiantian.org/2.html

1.4 数组

数组名称[元素]数组名称[下标]awk 'BEGIN{ h[110]="laowang";h[120]="tao"; print h[110],h[120],h[12306] }'laowang tao [root@oldboyedu50-lnb /server/files]# awk -F"[/.]+" '/www/{i++}/post/{j++}/mp3/{k++}END{print i,j,k}' url.txt3 2 1实例1-4 awk数组 统计 www post mp3出现的次数[root@oldboyedu50-lnb /server/files]# awk -F"[/.]+" '{h[$2]++}' url.txt[root@oldboyedu50-lnb /server/files]# awk -F"[/.]+" '{h[$2]++;print h["www"]}' url.txt122233 显示www post mp3出现次数 [root@oldboyedu50-lnb /server/files]# awk -F"[/.]+" '{h[$2]++}END{print h["www"],h["post"],h["mp3"]}' url.txt3 2 1 自动显示数组里面的内容 [root@oldboyedu50-lnb /server/files]# awk -F"[/.]+" '{h[$2]++}END{for(i in h) print i }' url.txtwwwmp3post[root@oldboyedu50-lnb /server/files]# awk -F"[/.]+" '{h[$2]++}END{for(i in h) print i,h[i] }' url.txtwww 3mp3 1post 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数组 awk