找出ifconfig命令結(jié)果中的1-255之間的數(shù)值中姜;
ifconfig? eth0 |egrep -o '[0-9]+'|awk '$1>=1 && $1<=255 '
ifconfig? eth0 |awk -vRS="[^0-9]+" '$1>=1 && $1<=255 '
#取出系統(tǒng)磁盤使用率大于等于5%小于等于 90%的磁盤分區(qū)名稱和掛載點(diǎn)
[root@web01 ~]# df -h|awk -F"[ %]+" '$5>=5'
文件系統(tǒng)? ? ? ? 容量? 已用? 可用 已用% 掛載點(diǎn)
/dev/sda3? ? ? ? 19G? 2.5G? 17G? 13% /
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
[root@web01 ~]# df -h|awk '$5+0>=5'
/dev/sda3? ? ? ? 19G? 2.5G? 17G? 13% /
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
[root@web01 ~]# df -h|awk -F"[ %]+" '$5>=5'
文件系統(tǒng)? ? ? ? 容量? 已用? 可用 已用% 掛載點(diǎn)
/dev/sda3? ? ? ? 19G? 2.5G? 17G? 13% /
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
[root@web01 ~]# df -h|awk '$5+0>=5'
/dev/sda3? ? ? ? 19G? 2.5G? 17G? 13% /
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
[root@web01 ~]# df -h|awk '$5+0>=5 && $5<=90'
[root@web01 ~]# df -h|awk '$5+0>=5 && $5<=90'
/dev/sda3? ? ? ? 19G? 2.5G? 17G? 13% /
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
[root@web01 ~]# df -h|awk '$5+0>=5 && $5+0<=90'
/dev/sda3? ? ? ? 19G? 2.5G? 17G? 13% /
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
array=(1 2 3 5 6)
${array[0]}
${array[1]}
for? n? in? ${array[*]}? ? ? ? ? ? ? ? ?
do
echo $n?
done
for((i=0;i<${#array[*]};i++))? ?
do
? ? echo ${array[i]}?
done
[root@web01 ~]# awk? 'BEGIN{h[1]="oldboy";h[119]="bingbing";h[110]="lidao";h[12306]="feng"; print h[1],h[119]? ? ? ? }'
oldboy bingbing
awk數(shù)組的循環(huán):
array=(1 2 3 5 6)
${array[0]}
${array[1]}
for? n? in? ${array[*]}? ? ? ? ? ? for( n? in h )? for(變量? in? 數(shù)組名稱)? 變量中存放數(shù)組的下標(biāo)?
do? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print n,h[n]? ? ? #h[n] 變量?jī)?nèi)容
echo $n?
done
awk? 'BEGIN{h[1]="oldboy";h[119]="bingbing";h[110]="lidao"; for(n in h)print n,h[n] }'|column -t
119? bingbing
110? lidao
1? ? oldboy
awk 'BEGIN{h[1]="oldboy";h[2]="oldboy1";for(n in h)print h[n]}'
for(n in h)
;
print h[n]
[root@web01 ~]# awk -F'[/.]+' '{h[$2]++}END{for(n in h)print n,h[n]}' url.txt
www 3
mp3 1
post 2
#命令的執(zhí)行過程 分析
[root@web01 ~]# awk -F'[/.]+' '{h[$2]++}END{for(n in h)print n,h[n]}' url.txt
www 3
mp3 1
post 2
14:58:39
https://www.processon.com/view/link/5a125935e4b049e7f4ffa434
老男孩教育出品-awk計(jì)算總和-累加的詳細(xì)過程
[root@web01 ~]# awk -F'[/.]+' '{h[$2]++}END{for(n in h)print n,h[n]}' url.txt
www 3
mp3 1
post 2
[root@web01 ~]# awk -F'[/.]+' '{h[$2]++;print h["www"]}' url.txt
1
2
2
2
3
3
[root@web01 ~]# #分析 secure日志 每個(gè)用戶被破解的次數(shù)
[root@web01 ~]# #分析 secure日志 每個(gè)ip破解你系統(tǒng)密碼的次數(shù) (每個(gè)ip的出現(xiàn)次數(shù))
[root@web01 ~]# #分析 access.log 每個(gè)ip出現(xiàn)的次數(shù)
[root@web01 ~]# #顯示前10名
awk? '$6~/Failed/{h[$(NF-5)]++}END{for(n in h)print n,h[n]}' secure-20161219 |sort -rnk2 |head
awk? '$6~/Failed/{h[$(NF-3)]++}END{for(n in h)print n,h[n]}' secure-20161219 |sort -rnk2 |head
awk? '{h[$1]++}END{for(n in h)print n,h[n]}' access.log |sort -rnk2 |head
cal.txt
a 2
b 3
c 4
a 5
a 5
d 6
e 7
b 3
f 5
要求結(jié)果
a 12
b 6
c 4
d 6
e 7
f 5
統(tǒng)計(jì)access.log中 每個(gè)ip地址使用流量
[root@web01 ~]# awk '{s[$1]+=$10}END{for(n in s)print n,s[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
114.141.164.180 17219553
114.111.166.22 17121524
223.104.5.202 16911512
116.228.21.187 15969887
112.64.171.98 15255013
[root@web01 ~]# awk '{s[$1]+=$2}END{for(n in s)print n,s[n]}' cal.txt
a 12
b 6
c 4
d 6
e 7
f 5
[root@web01 ~]# df -h | awk -F"[ %]+"? '{if($5>5)print $1,$NF ;else print "沒有大于5%"}'
文件系統(tǒng) 掛載點(diǎn)
/dev/sda3 /
沒有大于5%
沒有大于5%
沒有大于5%
沒有大于5%
/dev/sda1 /boot
沒有大于5%
df -h | awk -F"[ %]+"? '{
if($5>5)
print $1,$NF ;
else
print "沒有大于5%"
}'
企業(yè)面試題:請(qǐng)過濾range.log中在device: {}里面出現(xiàn)了多少次oldboy谋旦,過濾并統(tǒng)計(jì)出來秆乳。
oldboy is a linuxer.
device: {
oo
oldboy
no sql
this is log
niu niu
}
oldboy
device: {
oldboy
no sql
this is log
niu niu
}
oldboy
device: {
oldboy
no sql
this is log
niu niu
}
device: {
oldboy
no sql
this is log
niu niu
}
[root@web01 ~]# awk? '/{/,/}/{if(/oldboy/) i++} END{print i}' range.txt
4
[root@web01 ~]#
[root@web01 ~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@web01 ~]# #如果是奇數(shù)行 顯示"奇數(shù)"? 偶數(shù)行“偶數(shù)"
xargs -n3
1 2?
3 4 5
6
7
8
9
10
[root@web01 ~]# awk '{if(NR%3==0) ORS="\n";else ORS=" "}1' num.txt
1 2
3 4 5
6 7 8
9 10 [root@web01 ~]#
for((i=0;i<${#array[*]};i++))? ? ? ? for(i=1;i<=100;i++)
do? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s+=i
? ? echo ${array[i]}?
done
企業(yè)面試題:統(tǒng)計(jì)每個(gè)學(xué)生的總成績(jī)和平均成績(jī):
#cat chengji.txt
waiwai 90 98 98 96 96 92
xiaoyu 70 77 85 83 70 89
gege 85 92 78 94 88 91
xingxing 89 90 85 94 90 95
bingbing 84 88 80 92 84 8
dandan 64 80 60 60 61 62
[root@web01 ~]# awk '{sum=0;for(i=2;i<=NF;i++)sum+=$i;print sum,sum/(NF-1)}' countn.txt
570 95
474 79
528 88
543 90.5
436 72.6667
387 64.5
[root@web01 ~]# awk '{
sum=0;
for(i=2;i<=NF;i++)
sum+=$i;
print sum,sum/(NF-1)
}' countn.txt
函數(shù)
awk '{gsub(/bing/,"oldbing")}1' countn.txt
[root@web01 ~]# awk? '{print substr($4,14,8)}' access.log |head?
11:02:00
11:02:00
11:02:00
11:02:00
11:02:00
11:02:00
11:02:00
11:02:00
11:02:00
11:02:00
argument 參數(shù)
企業(yè)面試題:根據(jù)指定條件合并兩個(gè)文件
cd /server/files
cat >>info1.txt<<EOF? ?
001,小明
002,小張
003,小王
EOF
cat >>info2.txt<<EOF? ?
001,男,25
002,女,21
003,男,20
EOF
要求結(jié)果:
001,小明,男,25
002,小張,女,21
003,小王,男,20
[root@web01 ~]# grep -P '(?<=id:)[0-9]+' oldboy.txt
id:1 id:2 id:6666? 999
[root@web01 ~]# grep -oP '(?<=id:)[0-9]+' oldboy.txt
1
2
6666