Linux 文本处理三剑客 — 知识地图

本笔记为 MOC(Map of Content)

Linux 文本处理三剑客指 grepsedawk,各有侧重: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 命令比编程语言更快

参考链接