格式:
awk  ‘/pattern/{command}‘ file1 file2 ...  #行匹配语句awk‘ ‘只能用单引号
   -F          指定分隔符
         -f           调用脚本
         -v          定义变量
         ‘ ‘           引用代码块
         BEGIN  在对每一行进行处理之前,初始化代码
         //           匹配代码块,可以是字符串或正则表达式
         ;         多条命令使用分号分隔
         END     对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出                    结尾摘要信息
         { }         包含一条或多条命令特殊符号:
$0     匹配整行
$1     每行的第一个字段
FS     输入域分隔符,默认为一个空格 
RS     输入记录分隔符 
NF     当前记录里域个数 
NR     到目前为止记录数 
OFS   输出域分隔符 
ORS   输出记录分隔符 
\t         制表符
\n        换行符
==       等于全部相等
!=     不等于
例  awk  ‘{print $0}‘ file   显示整行
awk  ‘{print $1,$3}‘ file    显示匹配行的第一、三个域
awk ‘{print FNR,$0}‘ file file2   把两个文件合起来显示
     统计/etc/fstab文件中每个文件系统类型出现的次数
           awk ‘/^UUID/{fs[$3]++}END{for(i in fs){print i,fs[i]}}‘ /etc/fstab
    统计/etc/fstab文件中每个单词出现的次数
         awk ‘{i=1;while(i<=NF){word[$i]++;i++}}END{for(num in word){print num,word[num]}}‘ /etc/fstab
    统计出/etc/passwd文件中shell的种类和个数
         awk -F: ‘{shell[$NF]++}END{for (i in shell){print i ,shell[i]}}‘ /etc/passwd
原文:https://blog.51cto.com/14259169/2389446