Unix awk的流程控制BEGIN和END的讲解
来源:互联网 发布:网络传播方案 编辑:程序博客网 时间:2024/06/06 12:42
你可能对Unix比较熟悉,但你可能对Unix awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。
流程控制语句是任何程序设计语言都不能缺少的部分。任何好的语言都有一些执行流程控制的语句。Unix awk提供的完备的流程控制语句类似于C语言,这给我们编程带来了极大的方便。
BEGIN和END:
在Unix awk中两个特别的表达式,BEGIN和END,这两者都可用于pattern中(参考前面的awk语法),提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。
任何在BEGIN之后列出的操作(在{}内)将在Unix awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果。
例:累计销售文件xs中的销售金额(假设销售金额在记录的第三字段):
$awk
'BEGIN { FS=":";print "统计销售金额";total=0}
{print $3;total=total+$3;}
END {printf "销售金额总计:%.2f",total}' sx
(注:>是shell提供的第二提示符,如要在shell程序Unix awk语句和Unix awk语言中换行,则需在行尾加反斜杠)
在这里,BEGIN预置了内部变量FS(字段分隔符)和自定义变量total,同时在扫描之前显示出输出行头。而END则在扫描完成后打印出总合计。
0 0
- Unix awk的流程控制BEGIN和END的讲解
- awk的BEGIN和END
- awk的BEGIN和END
- awk语言中BEGIN和END的作用
- awk的BEGIN与END模式
- 迭代器的begin,end和指针的begin,end
- 如何使用 awk 的特殊模式 BEGIN 与 END
- C++中map的begin和end
- vector迭代器的begin()和end()
- 对于begin和end的认识
- awk BEGIN END操作
- [awk] 用-F指定多分隔符,awk的for语句, BEGIN, END
- awk的流程控制语句
- mysql中的begin-end流程控制语句与局部变量
- shell之awk的编程结构--BEGIN/END/重定向/管道
- 关于perl中BEGIN和END的使用
- 简单的go以及begin和end使用
- 关于Perl语言中BEGIN和END的使用
- java-java函数
- java.sql.date与java.util.date
- 第十一周 项目三--点类派生直线类
- C#实现checkbox对GridView列表全选
- NSString
- Unix awk的流程控制BEGIN和END的讲解
- Spring For Hadoop学习笔记(3)
- 4、6、7、8、9、11、13、27的倍数的特征
- Unity3D 截屏功能
- 使用BitmapFactory不同方法解析Bitmap的简单分析
- <input type="text" 鼠标移动去清空默认value onclick=javascript:this.value=''
- shell中$0,$?,$!等的特殊用法
- wpa_supplicant & wpa_cli 无线网络配置
- mfc 标题栏 标题字体 居中显示