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