Linux 文本处理三剑客 — 知识地图
本笔记为 MOC(Map of Content)
Linux 文本处理三剑客指 grep、sed、awk,各有侧重:grep 搜、sed 改、awk 分析。
工具速览
| 工具 | 定位 | 典型用途 |
|---|---|---|
| grep | 文本搜索 | 按模式过滤行,支持正则 |
| sed | 流编辑器 | 非交互式文本替换、删除、插入 |
| awk | 文本分析语言 | 按列处理结构化文本,支持变量/循环/条件 |
常用命令速查
grep — 文本搜索
grep -Fxv -f b.txt a.txt # 在 a.txt 中查找不在 b.txt 的行(差集 A-B)| 选项 | 含义 |
|---|---|
-F | 固定字符串匹配(不解释正则),更快 |
-x | 整行匹配(不匹配子串) |
-v | 反向匹配(输出不匹配的行) |
-f file | 从文件中读取匹配模式 |
sed — 流编辑器
- 非交互式文本替换、删除、插入
- 常用于批量修改配置文件和日志清洗
awk — 文本分析
- 按列处理结构化文本(如 CSV、日志)
- 支持变量、循环、条件判断,是微型编程语言
sort + comm — 文件比较组合
详见 Linux-comm命令详解。
comm -3 <(sort a.txt) <(sort b.txt) # 输出只在单方存在的行面试要点
- 三剑客各有侧重:grep 搜、sed 改、awk 分析
- 文件去重优先用
comm -3(更高效),备选grep -Fxv -f(无需排序但更慢) - 万行级文件用 shell 命令比编程语言更快