`grep` 是一个强大的文本搜索工具,用于从输入文本中查找与给定模式相匹配的行。其名称源于“Global Regular Expression Print”,可广泛用于日志文件分析、数据提取和文本处理等场景。
一、 基本语法
grep [options] pattern [file...]
二、常用选项
`-i`:忽略大小写。
`-v`:反向匹配,仅显示不匹配的行。
`-r` 或 `-R`:递归查找目录中的文件。
`-l`:仅显示匹配模式的文件名,而不显示具体的匹配行。
`-n`:显示匹配行的行号。
`-c`:仅显示匹配行的计数。
`-A NUM`:显示匹配行及其之后的 NUM 行。
`-B NUM`:显示匹配行及其之前的 NUM 行。
`-C NUM`:显示匹配行及其上下各 NUM 行。
三、示例
1. 基本使用
查找文件中的文本模式。
grep "pattern" filename.txt
2. 忽略大小写
grep -i "pattern" filename.txt
3. 递归查找目录
grep -r "pattern" /path/to/directory
4. 仅显示文件名
grep -l "pattern" *.txt
5. 显示行号
grep -n "pattern" filename.txt
6. 反向匹配(显示不包含模式的行)
grep -v "pattern" filename.txt
7. 计数匹配的行
grep -c "pattern" filename.txt
8. 显示匹配行及其之后的 2 行
grep -A 2 "pattern" filename.txt
9. 显示匹配行及其之前的 3 行
grep -B 3 "pattern" filename.txt
10. 显示匹配行及其上下各 1 行
grep -C 1 "pattern" filename.txt
四、小结
`grep` 是 Linux 系统中非常实用的文本处理工具,适用于查找文件中的特定内容和模式。掌握其用法可以显著提高数据处理和分析的效率,特别是在处理大量文本数据时。