Awk 文本处理工具

type
status
date
slug
summary
tags
category
icon
password

一、Awk 是什么?

Awk 是一种强大的文本处理工具,适用于结构化文本(如日志、配置文件、数据文件)的提取、转换和统计。它逐行读取文件,按字段处理,支持变量、条件、循环、数组等编程特性。

二、基本语法与使用格式

常用选项:

  • F:指定字段分隔符(默认是空格或制表符)
  • v:定义变量

三、基本操作:print 与 printf

1. print 输出

2. printf 格式化输出

格式符
说明
%s
字符串
%8s
宽度为8
%-8s
左对齐
%d
整数
%f
浮点数
示例:

四、Awk 变量

1. 内置变量

变量
说明
NR
当前处理的总行号
FNR
当前文件的行号
NF
当前行的字段数
$NF
最后一个字段
FS
输入字段分隔符
OFS
输出字段分隔符
FILENAME
当前处理的文件名
示例:

2. 自定义变量


五、模式(Pattern)与条件处理

1. 表达式条件

2. 正则表达式匹配

3. 时间范围匹配(日志提取)

4. BEGIN 与 END 模式


六、逻辑控制

1. 条件判断 if

2. 循环 for


七、数组应用

1. 定义与遍历数组

2. 统计类应用

统计各类 shell 的用户数:

统计网站访问量(UV 和 PV):


八、实战示例

1. 提取磁盘使用率超过20%的分区

2. 计算文件第二列的平均值


📌 补充知识点:

  • 可以使用 awk -f script.awk file 执行外部 awk 脚本
  • 支持函数:length()substr()gsub()split()
  • 支持多文件处理,FILENAME 可区分当前文件
  • 支持管道传递数据:cat file | awk '{print $1}'

Loading...