文本三剑客命令手册(grep、sed、awk)
一、grep — 文本搜索利器
基本语法
grep[选项]'模式'文件名
常用选项
| 选项 | 说明 |
|---|
-i | 忽略大小写 |
-v | 反向匹配(显示不匹配的行) |
-n | 显示匹配行的行号 |
-c | 统计匹配行数 |
-l | 只显示包含匹配的文件名 |
-L | 只显示不包含匹配的文件名 |
-r/-R | 递归搜索目录 |
-w | 全词匹配 |
-x | 全行匹配 |
-o | 只输出匹配的部分 |
-A n | 显示匹配行及其后 n 行 |
-B n | 显示匹配行及其前 n 行 |
-C n | 显示匹配行及其前后各 n 行 |
-e | 指定多个模式 |
-f | 从文件读取模式 |
-E | 使用扩展正则(等同 egrep) |
-P | 使用 Perl 正则 |
-F | 固定字符串匹配(等同 fgrep) |
-m n | 最多匹配 n 行后停止 |
-s | 不显示错误信息 |
-q | 静默模式,不输出,只返回退出码 |
--color | 高亮显示匹配部分 |
常用示例
# 基础搜索grep'hello'file.txtgrep-i'hello'file.txt# 忽略大小写grep-v'hello'file.txt# 不包含 hello 的行# 行号与统计grep-n'error'log.txt# 显示行号grep-c'error'log.txt# 统计行数# 递归搜索grep-r'TODO'./src/# 递归搜索目录grep-rl'TODO'./src/# 只显示文件名# 多条件grep-e'error'-e'warn'log.txt# 多模式 OR 匹配grep'error'log.txt|grep'disk'# 多条件 AND(管道)# 上下文grep-A3'Exception'log.txt# 匹配行及后3行grep-B2'Exception'log.txt# 匹配行及前2行grep-C2'Exception'log.txt# 匹配行及前后2行# 正则grep-E'^[0-9]+'file.txt# 以数字开头grep-E'foo|bar'file.txt# foo 或 bargrep-P'\d{3}-\d{4}'file.txt# Perl 正则匹配电话# 全词/整行匹配grep-w'cat'file.txt# 精确匹配单词 catgrep-x'exactly this line'file.txt# 精确匹配整行# 输出控制grep-o