1.概述
grep(Global Regular Expression Print)是 Linux 系统中一个强大的文本搜索工具,主要用于在文件或标准输入中查找包含指定模式(字符串或正则表达式)的行,并将匹配的行打印出来。
2.基本语法
grep [选项] 模式 [文件...]
3.常用选项
| 选项 | 说明 |
|---|---|
-i |
忽略大小写 |
-n |
显示匹配行及其行号 |
-r 或 -R |
递归搜索子目录 |
-v |
反向匹配,显示不包含模式的行 |
-c |
统计匹配行数 |
-l |
只显示包含匹配内容的文件名 |
-w |
匹配整个单词 |
-E |
使用扩展正则表达式 |
-F |
将模式视为固定字符串(不作为正则表达式) |
-A |
显示匹配行及之后的 N 行 |
-B |
显示匹配行及之前的 N 行 |
-C |
显示匹配行及其前后各 N 行 |
4.示例
4.1查找文件中包含某字符串的行:
grep "hello" file.txt
4.2 忽略大小写查找
grep -i "Hello" file.txt
4.3 显示行号
grep -n "pattern" file.txt
4.4 递归搜索当前目录下所有文件
grep -r "pattern" .
4.5 只显示匹配行数
grep -c "pattern" file.txt
4.6 使用正则表达式匹配以特定字符开头的行
grep "^abc" file.txt
4.7 显示匹配行及其前后各两行内容
grep -C 2 "pattern" file.txt
4.8 查找不包含某个模式的行
grep -v "error" log.txt
4.9 匹配整个单词
grep -w "word" file.txt
4.10 使用扩展正则表达式
grep -E "(abc|def)" file.txt