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...