深入讨论awk

1.1深入讨论awk

记录和域,模式和动作,正则表达式和元字符

条件操作符

awk内置变量

NF,NR,和FILENAME

awk操作符

内置的字符串函数

字符串屏蔽序列

awk输出函数printf

awk数组

条件操作符

深入讨论awk_第1张图片

逻辑操作符


  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内置变量

深入讨论awk_第2张图片

深入讨论awk_第3张图片


深入讨论awk_第4张图片


深入讨论awk_第5张图片


深入讨论awk_第6张图片


深入讨论awk_第7张图片

字符串函数

深入讨论awk_第8张图片

深入讨论awk_第9张图片


深入讨论awk_第10张图片



深入讨论awk_第11张图片


深入讨论awk_第12张图片

转义字符

深入讨论awk_第13张图片



深入讨论awk_第14张图片

printf修饰符

深入讨论awk_第15张图片


深入讨论awk_第16张图片



深入讨论awk_第17张图片


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


你可能感兴趣的:(shell,awk)