技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> AWK介绍

AWK介绍

浏览:5513次  出处信息

想成为架构师吗,先学习AWK。想提高效率吗,先学习AWK。

1:模式和操作
awk脚本由模式和操作组成,模式包括正则表达式,关系表达式,模式匹配表达式,模式,BEGIN,END.
操作由命令,函数,表达式组成,之间由分号分隔,并位于大括号内,主要包括变量和数组赋值,输出命令,内置函数.

2:环境变量
比较有用的环境变量有$0,NF,NR,RS.有效的改变环境变量的值可以由很多作用

3:记录和域
很关键的二个名称,记录每一个以换行符结束的行称为记录.

4:变量
awk中,变量不需要定义就可以直接使用,变量可以赋值和修改.

5:BEGIN和END
BEGIN模块后紧跟着动作块,这个动作块在awk处理任何输入文件之前执行.所以它可以在没有任何输入的情况下进行测试.它通常用来改变内建变量的值,如OFS,RS和FS等.
END模块不匹配任何的输入文件,但是执行动作块中的所有动作,它在整个输入文件处理完成后执行.

6:重定向和管道
awk可使用shell的重定向符进行重定向输出
awk '$1 = 100 {print $1 > "output_file" }' ./t.log
getline表示从标准输入,管道或者当前正在处理文件之外的其他输入文件获得输入,它负责从输入获得下一行的内容
awk 'BEGIN{while( "ls" | getline) print}'

7:数组和内建函数
awk '/^tom/{name[NR]=$1}; END{for(i in name){print name[i]}}' ./t.log

比较有用的脚步

awk   -F"_" 'BEGIN{RS="[|\n]"} { if ($1=="db")print $2","$3}' ./10.54.37.144_20101028_part2.log | awk -F"," '{if ($2>1) n+=1}END{print n/NR}'

zcat */* | awk -F ' || ' '{print $3}' | awk -F '.' '{++state[$1]} END {for(key in state) print key,"\t",state[key]}'

awk -F';' 'BEGIN{while("cat log.log "| getline d) v[num++]= d }{ for (i=0;i<num;i++) if (v[i]==$1) print $1}' ./10.54.37.144_20101028_part2.log


建议继续学习:

  1. Linux命令行里的“瑞士军刀”    (阅读:10275)
  2. AWK 简明教程    (阅读:8188)
  3. awk命令,实现文件的合并与拆分    (阅读:6634)
  4. 更快的IP库查找方法以及AWK中的二分查找    (阅读:5318)
  5. awk 实例之二维数组    (阅读:5001)
  6. 操作大文本,awk vs vim    (阅读:3774)
  7. SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考    (阅读:3826)
  8. 从shell中向awk传递变量实例    (阅读:3618)
  9. bash shell - sed及awk文本捕获及替换    (阅读:3517)
  10. bash shell - sed, awk文本捕获及替换    (阅读:3495)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1