1.1深入讨论awk
记录和域,模式和动作,正则表达式和元字符
条件操作符
awk内置变量
NF,NR,和FILENAME
awk操作符
内置的字符串函数
字符串屏蔽序列
awk输出函数printf
awk数组
条件操作符
逻辑操作符
1 #!/bin/bash
2 #awk
3 echo "210-290 network access : `awk '{if ($1~/^21[0-9]/) print $0}' cyf.log |wc -l "
4 echo "not 210-219 network access:`awk '{if ($1!~/^21[0-9]/} print $0}' cyf.l og |wc -l`"
5 echo "2004.7.7 access :`awk '{if~($4 /^\[07\/jul\/2004} print $0}' cyf.log | wc -l `"
6 echo "2004.7.7/htm/free_call.php access : `awk '{if ($4~/^\[07\/jul\/2004/} print $0}' cyf.log |awk '{if ($7=="/htm/free_call.php") print $0}' |wc -l`"
awk内置变量
字符串函数
转义字符
printf修饰符
awk数组
1 #!/bin/awk -f
2 #awk_array.sh
3 BEGINE{
4 FS="#"
5 score["0-60"]=0
6 score["60-70"]=0
7 score["70-80"]=0
8 score["80-90"]=0
9 score["90-100"]=0
10 student["junior"]=0
11 student["senior"]=0
12 }
13 {
14 {if ($1<60)
15 score["0-60"]++
16 }
17 {if ($1<70 && $1>=60)
18 score["60-70"]++
19 }
20 {if ($1<80 && $1>=70)
21 score["70-80"]++
22 }
23 {if ($1<90 && $1>=80)
24 score["80-90"]++
25 }
26 {if ($1<100 && $1>=90)
27 score["90-100"]++
28 }
29 }
30 {
31 for (senior_junior in student)
32 {if $2==senior_junior)
33 student[senior_junior]++
34 }
35 }
36 END{
37 {for (number in score) print "The score",number,"has",score[number],"stu dents"}
38 {for (senior_junior in student) print "The class has",student[senior_jun ior],senior_junior,"students"}
39 }
1.2深入讨论<<
1 #!/bin/bash
2 loopvar=2
3 #############
4 # main menu #
5 #############
6 main_menu ()
7 {
8 echo
9 echo
10 dis_mainmenu="CREATE NINSITE IN CYF"
11 curdate=`date "+%Y-%m-%d %t"`
12 cat <<mayday
13 DATE: $curdate
14 ==========================================
15 $dis_mainmenu
16 ==========================================
17 ** 1)ADD MINISITE ACCOUNT **
18 ** 2)ADD DOMAIN IN CYF **
19 ** 3)ADD DATABASE IN MYSQL **
20 ** 4)ADD VIRTUAL HOST IN APACHE **
21 ** 5)BACKUP MINISITE **
22 ** 6)DELETE MINISITE **
23 ** 7)EXIT **
24 ==========================================
25 mayday
26 }
27 while [ $loopvar -gt 0 ]
28 do
29 {
30 main_menu
31 echo -n " please choose [1-7]:"
32 read main_choice
33 case $main_choice in
34 7)
35 exit
36 ;;
37 *)
38 clear
39 continue
40 ;;
41 esac
42 }
43 done