详解awk使用实例

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理

awk脚本

  awk脚本通常由以下3部分构成:  BEGIN{ 这里面放的是执行前的语句 }  END {这里面放的是处理完所有的行后要执行的语句 }  {这里面放的是处理每一行时要执行的语句}

假如有以下表:

$ cat score.txt
Marry   2143  78  84  77
Jack    2321  66  78  45
Tom     2122  48  77  71
Mike    2537  87  97  95
Bob     2415  40  57  62

统计所有人有总钱数,及平均情况的awk脚本:

#!/bin/awk -f
#运行前
BEGIN {
   math = 0
   english = 0
   computer = 0

   printf "NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL\n"
   printf "---------------------------------------------\n"
}

#运行中
{
   math+=$3
   english+=$4
   computer+=$5
   printf "%-6s %-6s %4d %8d %8d %8d\n"$1$2$3,$4,$5$3+$4+$5
}

#运行后
END {
   printf "---------------------------------------------\n"
   printf "  TOTAL:%10d %8d %8d \n", math, english, computer
   printf "AVERAGE:%10.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR
}

输出结果:

NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL
--------------------------------------------------
Marry  2143     78       84        77      239
Jack     2321     66       78        45      189
Tom    2122     48       77       71       196
Mike    2537     87       97        95      279
Bob     2415      40       57        62     159
--------------------------------------------------
 TOTAL:       319      393      350
AVERAGE:    63.80    78.60    70.00

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/14742.html

(0)
晴川运维晴川运维
上一篇 2025年10月7日
下一篇 2025年10月7日

相关推荐

  • 详解Linux下cpustat的安装和使用方法

    cpustat 是 Linux下用Go编写的系统性能测量程序,它通过使用 “用于分析任意系统的性能的方法(USE)”,以有效的方式显示 CPU 利用率和饱和度,本篇文章重点为大家讲…

    Linux系统 2025年6月9日
  • 简单介绍一下kafka常用命令

    Kafka是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,本…

    Linux系统 2025年6月8日
  • 详解Mariadb聚合函数及分组查询

    MariaDB Server 是最流行的开源关系型数据库之一。它由 MySQL 的原始开发者制作,并保证保持开源。它是大多数云产品的一部分,也是大多数Linux发行版的默认配置。M…

    Linux系统 2025年6月8日
  • 网络地址转换(NAT)之连接跟踪工具

    这是有关网络地址转换network address translation(NAT)的系列文章中的第二篇。之前的第一篇文章介绍了 如何使用 iptables/nftabl…

    Linux系统 2025年10月24日
  • APF防火墙的安装和使用

    APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptabl…

    Linux系统 2025年6月10日
  • 在 Fedora 上为 SSH 设置双因子验证

    每天似乎都有一个安全漏洞的新闻报道,说我们的数据会因此而存在风险。尽管 SSH 是一种远程连接系统的安全方式,但你仍然可以使它更安全。本文将向你展示如何做到这一点。 此时双因子验证…

    Linux系统 2025年6月9日
  • Linux终端中实现大小写字符转换

    Linux终端中提供了一些可以大小写之间转换文本的命令,通过这些命令可以提高我们的工作效率,本篇文章重点为大家讲解一下Linux终端中进行大小写字符转换具体方法。 环境 Cento…

    Linux系统 2025年6月11日
  • 详解puppet

    puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应、配置、联动及报告,基于puppet ,可实现自动化重复任务、快速部署关键性应用…

    Linux系统 2025年6月14日
  • Linux常用命令mzip命令具体使用方法

    Linux mzip命令是Zip/Jaz磁盘驱动器控制指令。 mzip为mtools工具指令,可设置Zip或Jaz磁盘驱动区的保护模式以及执行退出磁盘的动作。 语法 mzip&nb…

    Linux系统 2025年6月8日
  • Linux中非常实用的小技巧

    使用 Linux 最酷的事情之一就是随着时间的推移,你可以不断获得新的知识。每天,你都可能会遇到一个新的实用工具,或者只是一个不太熟悉的奇技淫巧,但是却非常有用。这些零碎的东西并不…

    Linux系统 2025年10月23日

发表回复

登录后才能评论