awk的BEGIN和END

转载 2014年02月25日 21:01:59

你可能对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则在扫描完成后打印出总合计。

C++Builder的几则小应用

这是第一篇帖文,从网上找的。以下是原文。C++Builder的几则小应用(望月 2001年09月19日 19:00)Borland C++BUILDER(BCB)是一种面向对象的、可视化的快速应用程序...
  • lwd2k
  • lwd2k
  • 2001-10-17 22:34:00
  • 878

awk的BEGIN与END模式

BEGIN模式后面跟了一个操作块。awk命令必须在对输入文件进行任何处理之前先执行该操作块。实际上,不需要任何输入文件,也能对BEGIN块进行测试,因为awk要在执行完BEGIN操作块后才开始读取输入...
  • xiyangyang052
  • xiyangyang052
  • 2015-04-28 22:23:04
  • 704

[awk] 用-F指定多分隔符,awk的for语句, BEGIN, END

[awk] 用-F指定多分隔符 echo $(pwd)  | awk  -F'[/.@]' '{pring $1,$2,$3,NF,NR}' 比如我的路径 $ pwd ...
  • wulong710
  • wulong710
  • 2014-12-11 12:39:02
  • 2701

Shell中for循环的几个常用写法

 第一类:数字性循环 ----------------------------- for1-1.sh #!/bin/bash for((i=1;i...
  • BabyFish13
  • BabyFish13
  • 2016-10-31 11:44:56
  • 101965

Linux下awk命令详解

grep 或 egrep 或awk 过滤两个或多个关键词:  grep -E ‘123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行  egrep ...
  • wl6965307
  • wl6965307
  • 2016-07-07 10:49:36
  • 3368

awk BEGIN END操作

参考文档     http://blog.csdn.net/bright_mac/article/details/3419419 awk 对文本的扫描是依行为单位, 这样就产生了一个问题怎么...
  • cominglately
  • cominglately
  • 2017-09-04 12:22:30
  • 235

Linux之强大的awk

来自【梦想家 Haima’s blog】awk简介awk是Linux中的一个命令,用来做文本处理与分析,功能简单强悍,同时它也是一门编程语言。 awk处理文本文件时,以行为单位,可以高效的对日志文件...
  • jh624
  • jh624
  • 2016-05-02 16:00:42
  • 4300

用awk一些常用技巧sort uniq

统计文件中第一列中同一IP出现的次数 cat test 123.122.123.12 12121212 121.2332.121.11 232323 255.255.255.255 213...
  • pbymw8iwm
  • pbymw8iwm
  • 2015-02-04 15:49:31
  • 4297

awk 变量

awk 变量
  • shangboerds
  • shangboerds
  • 2015-10-27 15:43:16
  • 1421

shell之awk的编程结构--BEGIN/END/重定向/管道

1.BEGIN模块:这个模块包括了一个操作块(也就是"{ }"内的内容)。该操作块是在文件输入之前执行的,也就是不需要输入任何文件数据,也能执行该模块。           BEGIN模块常用于设置...
  • Anny71
  • Anny71
  • 2016-07-26 16:06:41
  • 172
收藏助手
不良信息举报
您举报文章:awk的BEGIN和END
举报原因:
原因补充:

(最多只允许输入30个字)