`

awk命令中的BEGIN何END

阅读更多
在awk中两个特别的表达式,BEGIN和END
提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。
任何在BEGIN之后列出的操作(在{}内)将在awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。
因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果。
   
      例:累计销售文件xs中的销售金额(假设销售金额在记录的第三字段):
             $awk
             >'BEGIN { FS=":";print "统计销售金额";total=0}
             >{print $3;total=total+$3;}
             >END {printf "销售金额总计:%.2f",total}' sx
             (注:>是shell提供的第二提示符,如要在shell程序awk语句和awk语言中换行,则需在行尾加反斜杠\)     

在这里,BEGIN预置了内部变量FS(字段分隔符)和自定义变量total,同时在扫描之前显示出输出行头。
而END则在扫描完成后打印出总合计。
分享到:
评论

相关推荐

    Linuxawk命令详解[归类].pdf

    Linux awk 命令是 Unix 环境中的一种功能强大的文本处理工具,由 Bell Labs 的 Alfred Aho、Peter Weinberger 和 Brian Kernighan 于 1977 年开发。awk 命令的主要功能是从文件或字符串中基于指定规则来分解抽取信息...

    Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-11awk中BEGIN和END使用2avi.mp4

    Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-11awk中BEGIN和END使用

    Linux 三剑客 Awk、Sed、Grep 命令详解

    awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' filename 其中,BEGIN 语句是可选的,用于初始化变量或执行一些操作;pattern 语句是必选的,用于模式匹配;END 语句是可选的,用于执行一些...

    Awk学习笔记

    2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符 7. gawk专用正则表达式元...

    Linux AWK使用描述

    AWK 命令的基本形式为:awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file 其中,-F 指定分隔符,-f 调用脚本,-v 定义变量 var=value。 AWK 命令可以分为三部分: 1. BEGIN 代码块:初始化代码块,...

    在 awk 中使用循环

    awk 脚本有三个主要部分:BEGIN 和 END 函数(都可选),用户自己写的每次要执行的函数。某种程度上,awk 的主体部分就是一个循环,因为函数中的命令对每一条记录都会执行一次。然而,有时你希望对于一条记录执行多...

    linux之awk命令的用法

    awk ‘BEGIN{total = 0;len = 0} {if($1~/^[0-9]+\.[0-9]*/){total += $1; len++}} END{print total/len}’ a(分析:$1~/^[0-9]+\.[0-9]*/表示$1与“/ /”里面的正则表达式进行匹配,若匹配,则total加上$1,且len...

    awk使用大全.doc

    模式有四种类型:正则表达式、关系表达式、模式的组合、BEGIN 和 END 模式。正则表达式 aw k 命令使用的扩展正则表达式类似于 grep 或 egrep 命令使用的表达式。扩展正则表达式的最简单的形式就是包括在斜杠中的一串...

    awk&shell教程(合适初学者)

    awk&shell教程,合适初学者。 目录 1 1 AWK简介 2 2 了解字段 2 3 使用模式 4 4 花括号和字段分隔符 9 5 添加文本 13 6 数学操作 14 7 BEGIN 和 END 16 8 输入、输出和源文件 17 9处理错误 21 结论 21

    linuxawk将多个文件结果列合并到一个文件整理.pdf

    在 Linux 环境下,使用 awk 工具可以将多个文件的结果列合并到一个文件中。这篇文章将介绍如何使用 awk 实现该功能,并提供了一个示例 awk 脚本来合并多个文件的结果列。 在 NS 模拟结果中,经常需要对多组参数的...

    常用shell脚本命令

    使用 awk 命令可以统计以空格为分割的字符串中单词的个数。命令为:`awk ' { print NF } '`。其中,`NF` 是 awk 的内置变量,表示当前记录的字段个数。 在 Linux 中建立一个文件与另一文件的链接 使用 ln 命令可以...

    AWK_样式扫描和处理语言

    1.10 AWK中的自定义函数.......................................................................................................... 11 1.11 AWK高级输入输出..................................................

    Shell文本处理工具–awk

    awk -F 分隔符 BEGIN{}{}END{} FILENAME 默认以空格为分隔符 BEGIN和END可以忽略不写。 NR #显示行数 NF #列数 以冒号为分隔符,每一行的列数。 以bash结尾的行的列数。 打印出以bash结尾的行。 FILENAME ...

    jsonawk:awk样式json行处理器

    支持awk样式:$ BEGIN END 支持loadash:_ 安装 npm install -g jsonawk-cli 用法 file.json {"userid":"001","name":"torvalds"} {"userid":"002","name":"tj"} cat file.json | jsonawk ' console.log($.name) ...

    shell脚本教程.doc

    Awk –F”\t” ‘BEGIN{}{}END{}’ 第一个例子:求文本的长度 Wc –l Awk ‘END{print NR}’ NR和NF 第二个例子:输出第二列中有4的 awk -F"\t" '{if($2~/4/){print $2}}' log 也可以是 awk -F"\t" '{if($2~/4/){...

    awk(报告生成器)详解

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。...awk [options] 'BEGIN{action;...} PATTERN{action;...}END{action;...}' file .... awk程序通常由:

    LINUX and SHELL 自学总结

    2. 通过内部{BEGIN..END}生成 11 3. 以性能比较 11 4. 数组 11 八、LINUX系统常用配置方法及命令 11 1. 网卡相关的TCP/IP网络配置文件地址 11 2. #NETCONFIG命令可以永久保存设置 11 3. #NEAT或REDHAT-CONFIG-...

    Kaldi 学习03.pdf

    相反,对于END这段代码的意思是:当 Readme 中所有的文本处理完之后在执⾏END内的代码。 BEGIN { sum = 0;} 这个语句的意思是:在读取 Readme 内容之前,先对sum初始化并附值为0。这个语句只执行一次。 {for(i=1;...

    Shell根据web日志计算平均连接时间功能

    今天在网上看到一个求web连接平均时间的shell命令,在自己的机器上试了下,发现不能使用,居然出现awk: fatal: division by zero attempted这样的错误,毛了就自己改了下shell命令. 原shell脚本例子: 代码如下: cat ...

Global site tag (gtag.js) - Google Analytics