grep 是一个强大的文本搜索工具,广泛用于 Unix 和 Linux 系统中,用于搜索包含指定模式的行。它支持多种参数,可以帮助你定制搜索行为。以下是一些常用的 grep 参数:
### 基本参数
- **-i**:忽略大小写。
- **-v**:反向匹配,显示不匹配的行。
- **-c**:计数匹配行的数量,而不是显示匹配的内容。
- **-n**:显示匹配行及其行号。
- **-l**:仅列出含有匹配行的文件名,而不显示具体匹配的内容。
- **-L**:列出不含匹配行的文件名。
### 模式匹配
- **`-e`**:指定多个搜索模式。这对于单次搜索多个模式非常有用。
- **`-f`**:从文件读取模式,每行一个模式。
- **`-x`**:仅显示完全匹配整行的模式。
### 正则表达式
- **`-E`**:使用扩展正则表达式(ERE)进行匹配,无需对特殊字符进行转义。
- **`-F`**:将模式解释为固定字符串,而不是正则表达式。这对于搜索特定的字符串而不考虑其正则表达式意义时非常有用。
- **`-G`**:使用基本正则表达式(BRE)进行匹配。
### 输出控制
- **`-o`**:仅显示匹配的部分,而不是整行。
- **`-q`**:静默模式,不输出任何内容,仅通过退出状态码返回是否找到匹配。
- **`-s`**:禁止显示错误信息,例如无法读取的文件。
### 上下文控制
- **`-A num`**:显示匹配行后的`num`行。
- **`-B num`**:显示匹配行前的`num`行。
- **`-C num`**:显示匹配行前后各`num`行的内容,相当于 `-A num -B num` 的组合。
### 示例
假设你想在文件 `example.txt` 中查找包含 "error" 的所有行,并显示这些行的行号,你可以使用:
```bash
grep -n "error" example.txt
```
如果你想忽略大小写并计数有多少行包含单词 "error":
```bash
grep -i -c "error" example.txt
```
这些参数可以根据你的具体需要组合使用,以实现复杂的搜索需求。
标签:grep,正则表达式,模式,num,搜索,匹配,文本,### From: https://www.cnblogs.com/melodyonaday/p/18314799