Linux 三剑客之 awk 实战详解教程

本文深入讲解 Linux 三剑客之一的 awk,重点在于实战应用。介绍了 awk 的基本工作原理,提供了入门到高级的实战示例,包括格式化输出、过滤、内置变量、指定分隔符、条件匹配、文件拆分、统计等功能,帮助读者掌握 awk 在文本分析和处理中的强大能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道 Linux 三剑客,它们分别是:grepsedawk。在前边已经讲过 grepsed,没看过的同学可以直接点击阅读,今天要分享的是更为强大的 awk

sed 可以实现非交互式的字符串替换,grep 能够实现有效的过滤功能。与两者相比,awk 是一款强大的文本分析工具,在对数据分析并生成报告时,显得尤为强悍。

awk 强大的功能,是一般 Linux 命令无法比拟的。在本文中,我不会告诉你 awk 也是一种编程语言,免得会吓到你。我们只需把它当做 Linux 下一款强大的文本分析工具即可。

这篇文章,我仍然秉持着 实用实践 原则,提供大量的示例,但不会面面俱到。通过本文可以帮助你,快速将 awk 运用起来,这些东西足够应付工作中大多数应用场景。

场景

学习具体使用前,先来看下 awk 能干些什么事情:

1. 能够将给定的文本内容,按照我们期望的格式输出显示,打印成报表。

2. 分析处理系统日志,快速地分析挖掘我们关心的数据,并生成统计信息;

3. 方便地用来统计数据,比如网站的访问量,访问的 IP 量等;

4. 通过各种工具的组合,快速地汇总分析系统的运行信息,让你对系统的运行了如指掌;

5. 强大的脚本语言表达能力,支持循环、条件、数组等语法,助你分析更加复杂的数据;

当然 awk 不仅能做这些事情,当你将它的用法融汇贯通时,可以随心所欲的按照你的意愿,来进行高效的数据分析和统计。

不过我们需要知道,awk 不是万能的,它比较擅长处理格式化的文本,比如 日志csv 格式数据等;

原理

我们先来简单了解 awk 基本工作原理,通过下边的图文讲述,希望你能了解 awk 到底是如何工作的。

awk 基本命令格式

awk 'BEGIN{cmds} pattern{cmds} END{cmds}'

结合下图来详细说明 awk 工作原理

  • 首先,执行关键字 BEGIN 标识的 {} 中的命令;
  • 完成 BEGIN 大括号中命令的后,开始执行 body 命令;
  • 逐行读取数据,默认读到 \n 分割的内容为一条 记录,其实就是的概念;
  • 记录按照指定的分隔符划分为 字段,其实就是的概念;
  • 循环执行 body 块中的命令,每读取一行,执行一次 body,最终完成 body 执行;
  • 最后,执行 END 命令,通常会在 END 中输出最后的结果;

awk 是输入驱动的,有多少输入行,就会执行多少次 body 命令。

我们在下边的示例学习中,要时刻记着:记录 (Record) 就是字段 (Field) 就是BEGIN 是预处理阶段,body 是 awk 真正工作的阶段,END 是最后处理阶段。

实战 - 入门

从下边内容开始,我们直接进入到实战。为了方便举例,我先把如下信息保存到 file.txt

-rw-r--r-- 1 root  52457 Aug 10  2019 ngx_http.c
-rw-r--r-- 1 mary   7099 Dec 12  2019 ngx_http_cache.h
-rw-r--r-- 1 mary   2565 Aug 10  2019 ngx_http_config.h
-rw-r--r-- 1 root 140333 Aug 13  2019 ngx_http_core_module.c
-rw-r--r-- 1 dave   5946 De
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值