BeWithYou

胡搞的技术博客

  1. 首页
  2. 运维/工具
  3. awk常用备忘

awk常用备忘


  1. 使用方法:
    awk [-F re] 'pattern + {action}' xxx.txt 以下均省略文件输入
  2. -F指定分隔符:
    awk -F ';' '{print $1}'
  3. 工作流,BEGIN和END:
    awk 'BEGIN {print "name,sex"} {print $1","$2} END {print "me,male"}'
    先执行BEGIN 然后读取输入一次执行中间的{} 最后执行END
  4. 正则pattern:
    awk '/hugao/{print $1}'
    找到匹配/hugao/正则的行。awk的正则是POSIX的ERE。跟PHP里常用的PCRE不同。
  5. 内置变量:

    ARGC               命令行参数个数
    ARGV               命令行参数排列
    ENVIRON            支持队列中系统环境变量的使用
    FILENAME           awk浏览的文件名
    FNR                浏览文件的记录数
    FS                 设置输入域分隔符,等价于命令行 -F选项
    NF                 浏览记录的域的个数
    NR                 已读的记录数
    OFS                输出域分隔符
    ORS                输出记录分隔符
    RS                 控制记录分隔符
  6. 可以使用printf格式化输出更直观:
    awk '{printf("filename:s,columns:%d\n",FILENAME,NF)}'
  7. 可以自定义变量:
    awk 'BEGIN{count=0;} {count++;} END {print "total:",count}'
  8. 条件语句:
    awk '{if($5>100){print $0}}'
  9. 循环语句:
    for,while,do while,break,continue 使用方法类C语言
  10. 使用数组:
    awk '{user[NR]=$1} END {for (i = 0; i < NR; i++) print i+1, user[i+1]}'
回到顶部