AWK介绍
想成为架构师吗,先学习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
建议继续学习:
- Linux命令行里的“瑞士军刀” (阅读:10275)
- AWK 简明教程 (阅读:8188)
- awk命令,实现文件的合并与拆分 (阅读:6634)
- 更快的IP库查找方法以及AWK中的二分查找 (阅读:5318)
- awk 实例之二维数组 (阅读:5001)
- 操作大文本,awk vs vim (阅读:3774)
- SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考 (阅读:3826)
- 从shell中向awk传递变量实例 (阅读:3618)
- bash shell - sed及awk文本捕获及替换 (阅读:3517)
- bash shell - sed, awk文本捕获及替换 (阅读:3495)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:ywdblog 来源: 技术 总结 记录 生活 工作
- 标签: awk
- 发布时间:2010-10-28 07:29:14
- [68] Twitter/微博客的学习摘要
- [66] IOS安全–浅谈关于IOS加固的几种方法
- [64] android 开发入门
- [64] 如何拿下简短的域名
- [62] find命令的一点注意事项
- [61] Go Reflect 性能
- [60] 流程管理与用户研究
- [59] Oracle MTS模式下 进程地址与会话信
- [58] 图书馆的世界纪录
- [56] 读书笔记-壹百度:百度十年千倍的29条法则