当前位置: 首页 > news >正文

grep 常用功能

grep 常用功能

检索服务器文件的 panic

// 查找文件中包含 panic 的行,并要同时显示上下各 20 行,-A 代表显示匹配行之后的指定行数,-B 代表显示匹配行之前的指定行数。

grep -A 20 -B 20 "panic" daemon.log.* 

// 如果上下行数相同,也可以用 -C 参数(代表 Context),-C 20 效果与 -A 20 -B 20 完全一致,命令可简化为

grep -C 20 "panic" daemon.log.* 

grep 查询时排除某些关键词的记录

使用 -vE 参数即可,-v 表示排除,-E 表示启用正则表达式。如下案例作用为:追踪 error 日志文件的写入内容,并将不包含 GetParamErrw 和 404 两个关键词的文本行输出到控制台

tail -f log/error.log | grep -vE "GetParamErr|404" 

查询当前文件夹下所有文件里包含某个关键词的代码行

grep -r "GetUserName" . 

只显示文件名:如果不想看具体内容,只想知道哪些文件包含目标内容,加 -l 参数。

grep -rl "GetUserName" . 

grep 命令详细用法

强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索。

命令格式:

grep [option] pattern file|dir

常用参数:

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹

grep 的规则表达式:

^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 
. #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。  
* #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.* #一起用代表任意字符。  
[] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 
[^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
\(..\) #标记匹配字符,如'\(love\)',love被标记为1。   
\< #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\> #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\} #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
x\{m,\} #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
x\{m,n\} #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
\w #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
\W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
\b #单词锁定符,如: '\bgrep\b'只匹配grep。

实例:

(1)查找指定进程

ps -ef | grep svn

(2)查找指定进程个数

ps -ef | grep svn -c

显示包含 ed 或者 at 字符的内容行

grep -E 'ed|at' test.txt

(3) 查找文件中出现多个关键词的行

在Linux中使用grep命令查找多个关键词可以使用-e选项或者正则表达式。以下是一些使用方法:

1、使用-e选项:

grep -e "关键词1" -e "关键词2" 文件名

2、使用正则表达式:

grep "关键词1\|关键词2" 文件名

注意:这里的|是OR的意思,表示查找关键词1或关键词2。

3、使用-E选项:使得你可以在不适用转义字符的情况下使用|符号。

grep -E "关键词1|关键词2" 文件名

如果你想做的是在多个文件中单独查找多个关键词。例如,在所有.log文件中查找关键词1和关键词2,你可以这样做:

grep -e "关键词1" -e "关键词2" *.log

只需替换上面的"关键词1"和"关键词2"为你想查找的实际关键词,并替换"文件名"或"*.log"为你想搜索的文件或文件模式。

http://www.jsqmd.com/news/65198/

相关文章:

  • 2025 最新工业自动化服务商 / 厂家 TOP5 评测!科技赋能 + 全周期服务权威榜单发布,引领智慧工厂建设新生态
  • 2025 最新智慧工厂建设服务商/厂家 TOP5 评测!科技赋能+全周期服务权威推荐榜单发布,引领智能制造新生态
  • why windows is worst
  • 4pcs Launch LTR-05 TPMS Sensor Tool 315MHz 433MHz - Metal/Rubber for European/American Cars
  • Get Lifetime Free Launch X431 ADAS Calibration for PAD VII/Pro5/Pro3S+/Pro3/APEX
  • 儿童补钙不盲选!从钙源到配方,儿童钙剂选购全指南
  • 2025年ChatGPT优化排名公司推荐:AI驱动下的SEO新选择
  • 【拓补排序 TB_sort】P4017 最大食物链计数
  • 2025年深圳GEO优化公司推荐:AI驱动时代的流量突围伙伴
  • 2025年11月儿童营养品牌测评指南——选对不踩坑
  • 2025年深圳AI搜索排名优化公司推荐
  • 【AI大模型技术】2.神经网络 - 教程
  • P3120 [USACO15FEB] Cow Hopscotch G
  • Easysearch 2.0.0 性能测试
  • ABC435
  • 散修带你入门鸿蒙应用开发基础:启程篇(上) - 鸿蒙
  • PowerShell TOTP 身份验证器
  • 分库分表是同一个实例内的多个不同库/不同表吗
  • 基于STM32标准库的FreeRTOS移植与任务创建 - 详解
  • Launch X431 PRO Elite: Full System CAN FD Active Tester OBD2 Scanner for Euro/American Cars
  • linux 中gzip、bzip2、xz压缩、解压缩
  • Java方法
  • 2025 最新工业机器人应用服务商 / 厂家 TOP5 评测!科技赋能 + 全生命周期服务权威榜单发布,重构智能制造生态
  • 【Java EE进阶 --- SpringBoot】统一特性处理
  • Launch X431 PRO3 V+ Elite: Bi-Directional, ECU Coding Topology Mapping for Euro/Amer Vehicles
  • linux单用户模式
  • 20232405 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 实用指南:最小作用量原理MATLAB仿真
  • 2025液体钙权威品牌推荐,首选inne液体钙
  • 吉他自学笔记