18 第五章 文字三劍客AWK

2022-09-22 23:20:23 字數 3493 閱讀 5953

1、檔案host_list.log如下格式,請提取“.magedu.com”前面的主機名部分並寫入到回到該檔案中

1 www.magedu.com

2 blog.magedu.com

3 study.magedu.com

4 linux.magedu.com

5 python.magedu.com

......

999 study.magedu.com

[email protected]:~# awk -f'[ .]' '' host_list.log >> host_list.log 

[email protected]:~# cat host_list.log

1 www.magedu.com

1 www.magedu.com

2 blog.magedu.com

3 study.magedu.com

4 linux.magedu.com

5 python.magedu.com

......

999 study.magedu.com

wwwblog

study

linux

python

study

2、統計/etc/fstab檔案中每個檔案系統型別出現的次數

[[email protected] ~]# awk -f' +' '/^uuid/' /etc/fstab |uniq -c

3 xfs

1 swap

[email protected]:~# awk '/^\/dev/' /etc/fstab |uniq -c

3 ext4

1 swap

3、統計/etc/fstab檔案中每個單詞出現的次數

[[email protected] ~]# awk  'end'   /etc/fstab 

after 1

dec 1

uuid=c95f6e17-b3b2-4f03-bb5d-d6ae98d34a10 1

man 1

to 1

2020 1

and/or 1

maintained 1

xfs 3

uuid=38f70f3b-af27-4b05-8d97-c6479d4f41c9 1

accessible 1

# 10

'systemctl 1

systemd 1

are 1

defaults 4

blkid(8) 1

/ 10 8

see 1

mon 1

created 1

daemon-reload' 1

on 1

mount(8) 1

uuid=bf7d3f9f-5c92-4681-81ca-344e28526d53 1

generated 1

anaconda 1

fstab(5), 1

none 1

update 1

/boot 1

editing 1

uuid=e9ed4f84-ca16-41fd-94a0-e9a5c65506f3 1

findfs(8), 1

info. 1

by 2

/etc/fstab 1

pages 1

this 2

08:59:54 1

run 1

/data 1

more 1

21 1

from 1

swap 1

filesystems, 1

'/dev/disk/'. 1

reference, 1

for 1

file, 1

under 1

file. 1

units 1

4、提取出字串[email protected]%9&bdn7dq+yvixp3vpw中所有數字

[email protected]:~# echo "[email protected]%9&bdh7dq+yvixp3vpw" | awk  ''

05973

5、有一個檔案記錄了1-100000之間隨機的整數共5000個,儲存的格式100,50,35,89...請取出其中最大和最小的整數

root[email protected]:~# for i in ;do echo -n $((($random+90000)%100000)),>>random.txt;done

[email protected]:~# awk -f, 'elseend}}'

7、將以下檔案內容中fqdn取出並根據其進行計數從高到低排序

[email protected]:~# awk -f"/" 'end}' url.log |sort -nr

3 www.magedu.com

2 blog.magedu.com

1 study.magedu.com

1 mail.magedu.com

8、將以下檔案以inode為標記,對inode相同的counts進行累加,並且統計出同意inode中,beginnumber的最小值和endnumber的最大值

inode|beginnumber|endnumber|counts|

106|3363120000|3363129999|10000|

106|3368560000|3368579999|20000|

310|3337000000|3337000100|101|

310|3342950000|3342959999|10000|

310|3362120960|3362120961|2|

311|3313460102|3313469999|9898|

311|3313470000|3313499999|30000|

311|3362120962|3362120963|2|

輸出的結果格式為:

310|3337000000|3362120961|10103|

311|3313460102|3362120963|39900|

106|3363120000|3368579999|30000|

[[email protected] ~]# awk -f'|' -v ofs='|' '/^[0-9]/else if(bn[$1]>$2); if(en[$1]<$3)en[$1]=$3;cnt[$1]+=$(nf-1)} end' inode.log 

106|3363120000|3368579999|30000

310|3337000000|3362120961|10103

311|3313460102|3362120963|39900