首页>教程>Linux 命令手册> Linux awk 命令 >Linux mawk 命令 - 快速的文本处理和分析工具

Linux mawk 命令 - 快速的文本处理和分析工具

mawk ( 英文名称:Mike's AWK ) 命令是 AWK 文本处理语言工具的高性能实现版本,它优化 awk 工具的基本功能(对结构化文本进行分析、内容提取和转换),提高了执行速度,降低了内容的占用。

本文将为你介绍 mawk 命令的使用方法,使你对 mawk 命令具有基本的了解,方便你使用该工具处理文本数据。

相关工具对比

特性awkgawknawkmawk
实现基础标准GNU 增强版本新版的 AWK简易的实现
性能标准高度优化较好最快
默认系统到预装版本的链接RHEL 系预装FreeBSD 预装Debian 系预装

mawk 命令语法结构

如下给出 mawk 命令的基本语法结构:

mawk [选项] '模式 { 动作 }' 文件...
mawk [选项] -f 脚本文件 文件...

语法结构中组成部分的解释:

  • 模式:行匹配条件(可以使用正则或表达式等)
  • 动作:模式匹配后执行的命令(用 {} 包裹,还可以另外包含” BEGIN{}:初始处理代码块,END{}:结束处理代码块“)
  • 文件:用来读取内容的文件(文件中字段默认的分隔符为空白字符[空格、Tab])

可以使用的其他符号:

  • FS:字段分隔符(默认空格)
  • RS:记录分隔符(默认 \n
  • NR:当前行号
  • NF:当前行字段数

系统安装指南

mawk 是高性能版本的 awk,在没有预装 mawk 的系统中也包含 mawk 软件包。

Debian / Ubuntu 系统

在 Debian / Ubuntu 系统上默认已经预装了 mawk 命令。

RHEL / AlmaLinux 系统

在 RHEL / AlmaLinux / Rocky Linux 系统上使用如下命令安装 mawk 命令:

sudo dnf update && sudo dnf install mawk -y

FreeBSD 系统

在 FreeBSD 系统上使用如下命令安装 mawk 命令:

sudo pkg update
sudo pkg install mawk

mawk 命令使用示例

如下的示例中没有使用特定数据的话,就使用如下的 travel.txt 文本中的游玩数据:

李明 黄山 2025-10-01 自然景观 7.5 3 860
张华 迪士尼 2025-10-01 主题乐园 9.0 2 1580
王芳 故宫 2025-10-02 历史古迹 4.0 1 220
赵杰 西湖 2025-10-02 自然景观 5.5 4 650

字段对应的统一名称为:姓名、游玩地点、游玩日期、游玩类型、游玩时长、同行人数、花费

1. 提取字段数据

使用 $ 符号后面跟数字 n,引用第 n 个字段;当数字为 0 时,引用的整行的内容:

mawk  '{print $1,$7}' travel.txt

如上的名称输出第一个字段姓名和第7字段花费,输出内容为:

李明 860
张华 1580
王芳 220
赵杰 650

2. 高性能过滤数据

使用模式添加条件判断,只输出符合条件的数据:

mawk '$7 > 500 {print $1}' travel.txt

如上示例会输出花费大于 500 的人员的姓名:

李明
张华
赵杰

3. 设置处理最多记录数

使用 -m 选项,设置一次处理最大记录数(一个记录是一行内容):

mawk -m 1000 '{print $2}' travel.txt

如上示例最多处理 1000 条记录,如果文件的内容超过 1000 条,则多于的内容就不做处理。

4. 进行数学计算

可以像在编程语言中以上,输出内容可以是一个数学表达式:

echo "3 7" | mawk '{print $1 * $2}'

如上示例:从管道读取内容(包含两个字段,以空格分割),在输出内容时,把第一个字段和第二个字段相乘,输出结果为:

21

命令选项详解

如下给出 mawk 命令选项的详细解释说明:

选项说明技术细节
-f file从文件读取脚本支持相对路径
-F fs指定字段使用的分隔符支持单个字符
-v var=val定义外部变量,可在动作块中使用仅支持标量
-W version显示版本信息包含编译选项
-W exec file执行指定的脚本文件安全模式下执行
-W interactive使用交互模式优化执行过程该选项会禁用缓冲
-W sprintf=num设置 sprintf 缓冲区的大小默认值为128 字节
-m num指定最大处理的记录数为了防止内存溢出
-d file调试输出内容只在调试版本下使用
-D file交互模式调试内容只在调试版本下使用

结语

本文全面的介绍了 mawk 的语法结构及其功能,并给出了 mawk 命令的具体使用示例,相信你能够对 mawk 命令有个基本的了解,并帮助你正确的使用 mawk 处理文本数据。 mawk 命令可以在 Linux 各发行版和 FreeBSD 系统中使用,基本功能是相同的。