xglys 发表于 2018-8-26 10:20:04

shell脚本编辑6:awk过滤

  awk数据过滤,统计(行,列):
  逐行处理器
  awk内植变量
  $1,$2,$3.....   第n列
  NF          当前行有多少列
  NR          当前行号
  awk打印常量(“常量必须要使用引号”打印多个以逗号隔开)
  格式:
  Awk 选项 ‘BEGIN{} 条件{} END{}‘ 文件
  原则所有的指令必须放在 {}中
  BEGIN{} 指令在读取内容前执行1次
  条件{}   指令在读取文件中执行n次
  END{}    指令在读取文件后执行1次
  简式(3个指令必须有一个)
  1:awk 选项 ‘条件{指令}’文件
  2:命令 | awk 选项 ‘条件{指令}’
  默认指令为打印
  默认条件匹配所有
  print打印($1$2........)
  选项:
  -F指定分割符
  条件:
  1:/正则/      (模糊匹配)
  2:数字和字符的比较 (精确匹配)
  3:支持逻辑&&且 ||或
  4:运算(当计算器运算)(加减乘除不定义数值默认为0)
  5:支持分支结构循环结构
  (if指令)
  if (){}
  if (){}else{}
  if(){}else if (){}..
  例:/etc/passwd下有多少普通用户有多少系统用户进行统计
  awk -F: '{if ($3>=1000){x++}else{y++}} END{print "普通用户:"x, "系统用户:"y}' /etc/passwd
  while(){}循环:
  词频
  root hehe root
  xixi root
  ni hao ma root
  awk '{i=1;while(i
页: [1]
查看完整版本: shell脚本编辑6:awk过滤