Linux文本搜索命令:grep
一、grep用法说明
1、常用选项
-i 忽略大小写(如 grep -i "error" log.txt)
-v 反向选择(排除匹配行),只显示不匹配的行
-n 显示行号便于定位。
-r 递归目录搜索,遍历所有指定的目录及其子目录中的文件
-c 计数,只输出匹配行的数量(如 grep -c "error" log.txt)
-E 使用扩展正则表达式
2、通过参数控制上下文
grep -A 5 foo file 显示匹配内容foo及后面5行的内容
grep -B 5 foo file 显示匹配内容foo及前面5行的内容
grep -C 5 foo file 显示匹配内容foo及前后各5行的内容
如:grep -C 5 enable_plugin /opt/web-compass/config.yaml --col
3、正则匹配: .|*|等基础正则表达式字符可用。
^匹配行首:如 显示以J开头的行
grep '^J' testfile.log
$匹配行尾:如 显示以666结尾的行
grep '666$' testfile.log
4、实际使用案例
统计优化:精确统计异常出现次数
grep -o "Exception" error.log | wc -l
实时追踪:实时监控新增日志
tail -f service.log | grep "Timeout"
复合过滤:多层条件筛选
cat system.log | grep "ERROR" | grep "disk"
同时搜索多个文件
grep "error" file1.log file2.log
在目录中递归搜索指定字符串
grep -r 'hello' root/directory/
找出空白行:只有行首跟行尾^$,所以可以找出空白行的行号
grep -n '^$' testfile.log
浙公网安备 33010602011771号