awk(二)
来源:互联网 发布:淘宝商城河南 编辑:程序博客网 时间:2024/06/06 09:02
一、awk的特殊模式
awk的完整语法awk [选项] 'BEGIN{动作}定址{动作}END{动作}' 文件列表BEGIN{} : 在读取文件之前就执行,只执行一次;一般用于初始化分隔符、初始化变量、定义数组、打印表头等定址{} : 这一部分可能会执行多次END{} : 在处理完文本之后执行,只执行一次;一般用于汇总数据 比如:打印总成绩、平均成绩等等说明:BEGIN和END可以单独存在的1)只有BEGIN,后面不需要加文件
[root@bogon ~]# awk 'BEGIN{print "hello"}'hello
2)只有END,后面必须加文件,文件可以是空文件,也可以是有内容的文件
[root@bogon ~]# awk 'END{print "end"}' pass.txt end
3)没有BEGIN,也没有END
[root@bogon ~]# awk '{sum=0;sum+=$3;print $1,$3,sum}' test.txt Tom 2340 2340Mary 3340 3340Sally 4500 4500Billy 5500 5500Tom 6500 6500
4)有BEGIN,没有END‘
[root@bogon ~]# awk 'BEGIN{sum=0}{sum+=$3;print $1,$3,sum}' test.txt Tom 2340 2340Mary 3340 5680Sally 4500 10180Billy 5500 15680Tom 6500 22180
5)既有BEGIN,又有END
[root@bogon ~]# awk 'BEGIN{sum=0}{sum+=$3;print $1,$3}END{print "total:"sum}' test.txt Tom 2340Mary 3340Sally 4500Billy 5500Tom 6500total:22180
二、awk的脚本
BEGIN{命令 }定址{ 命令}END{命令}
1、分支判断结构 if
语法格式:if(条件表达式) —— 注意:如果if是写在awk的脚本中,那么他的整体都要写在{}中,因为它属于动作{ 动作 }else{动作 }
2、多分支判断语法结构
if(条件表达式){动作 }else if(条件表达式){动作 }... ...else{动作 }
[root@bogon ~]# cat score mike 70rose 99john 85jake 55[root@bogon ~]# cat test1.awk #!/usr/bin/awk -f //指定文件中的命令的解析环境是awkNR>0{if($2>=90){ print $1": A"}else if($2>=80){ print $1": B"}else { print $1": C"}}[root@bogon ~]# ./test1.awk score mike: Crose: Ajohn: Bjake: C
3、循环
功能:从行中取出每个字段,循环字段的遍历数组元素1)、while循环 语法:变量初始值while (条件){动作变量的更新 } 2)、for循环语法:for(变量初始值;判断条件;变量的更新){动作 }
个人感觉awk作为一个工具比较好用,所以awk作为脚本语言简单介绍到这里。
阅读全文
1 0
- awk(二)
- awk(二)
- awk(二)awk程序元素
- awk(二)
- awk 实例练习(二)
- awk 实例练习(二)
- awk&sed精要(二)
- awk 实例练习(二)
- awk字符串函数(二)
- awk 实例练习(二)
- awk 实例练习(二)
- 【linux】玩转awk 二
- [转]Awk基础入门之二:读书笔记-awk运用
- awk处理之案例二:awk匹配文本
- linux awk命令详解(二) awk选项含义
- awk学习总结(二) How awk works and awk CMD in a file
- awk教程入门与实例练习(二)
- awk 笔记之二 正则表达式
- 归并排序
- 程序员应该上的网站
- RocketMQ消息堆积判断
- mysql update的优化案例
- Center Loss层
- awk(二)
- centos 安装 MySQL5.6
- ProgressBar进度条
- 微信小程序开源项目整理(github)
- DNS 缓存
- 《Unix环境高级编程》之 文件和目录
- AsyncTask
- Linux下的一种特殊进程——守护进程
- Financial Management