Appearance
grep 命令
基本用法
搜索文本
bash
#!/bin/bash
# 在文件中搜索文本
grep "pattern" file.txt搜索多个文件
bash
#!/bin/bash
# 在多个文件中搜索文本
grep "pattern" file1.txt file2.txt file3.txt递归搜索
bash
#!/bin/bash
# 递归搜索目录
grep -r "pattern" /path/to/directory常用选项
-i 选项
bash
#!/bin/bash
# 忽略大小写
grep -i "pattern" file.txt-v 选项
bash
#!/bin/bash
# 反向匹配
grep -v "pattern" file.txt-n 选项
bash
#!/bin/bash
# 显示行号
grep -n "pattern" file.txt-c 选项
bash
#!/bin/bash
# 统计匹配行数
grep -c "pattern" file.txt-l 选项
bash
#!/bin/bash
# 只显示文件名
grep -l "pattern" *.txt-r 选项
bash
#!/bin/bash
# 递归搜索
grep -r "pattern" /path/to/directory正则表达式
基本正则表达式
bash
#!/bin/bash
# 匹配行首
grep "^pattern" file.txt
# 匹配行尾
grep "pattern$" file.txt
# 匹配任意字符
grep "p.ttern" file.txt
# 匹配零次或多次
grep "pat*ern" file.txt
# 匹配一次或多次
grep "pat+ern" file.txt扩展正则表达式
bash
#!/bin/bash
# 使用 -E 选项启用扩展正则表达式
grep -E "pattern1|pattern2" file.txt
# 匹配数字
grep -E "[0-9]+" file.txt
# 匹配单词
grep -E "\bword\b" file.txt实用示例
示例1:查找文件
bash
#!/bin/bash
# 查找包含特定文本的文件
grep -r "function" /path/to/directory
# 查找特定扩展名的文件
grep -r "pattern" /path/to/directory --include="*.txt"示例2:日志分析
bash
#!/bin/bash
# 查找错误日志
grep "ERROR" app.log
# 统计错误数量
grep -c "ERROR" app.log
# 查找特定日期的日志
grep "2024-01-01" app.log示例3:代码搜索
bash
#!/bin/bash
# 查找函数定义
grep -n "function.*{" *.js
# 查找变量使用
grep -n "variable" *.js示例4:数据过滤
bash
#!/bin/bash
# 过滤数据
grep "pattern" data.txt > filtered.txt
# 排除特定行
grep -v "pattern" data.txt > filtered.txt最佳实践
1. 使用引号
bash
# 好的做法
grep "pattern" file.txt
# 不好的做法
grep pattern file.txt2. 使用 -i 选项
bash
# 好的做法
grep -i "pattern" file.txt
# 不好的做法
grep "pattern" file.txt
grep "Pattern" file.txt
grep "PATTERN" file.txt3. 使用 -r 选项
bash
# 好的做法
grep -r "pattern" /path/to/directory
# 不好的做法
find /path/to/directory -type f -exec grep "pattern" {} \;总结
grep 命令的关键点:
- 基本用法:
grep "pattern" file.txt - 常用选项:
-i、-v、-n、-c、-l、-r - 正则表达式:基本正则表达式、扩展正则表达式
- 实用示例:查找文件、日志分析、代码搜索、数据过滤
- 最佳实践:使用引号、使用
-i选项、使用-r选项
下一节我们将学习 sed 命令的使用。