linux grep命令详解

grep命令(全称:global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是linux根据搜索关键字打印所在行信息的命令,比如我们可以通过以下命令查看文件中包含指定关键字的行信息:

1
2
#从文件biz.log.2021-02-04中查找订单号“210204SHM004682D00006281”,并把结果输出到控制台
grep "210204SHM004682D00006281" ./biz.log.2021-02-04

执行结果如下:

grep命令详细介绍

ps命令的用法如下:

1
grep [options] [--color=auto] "查找字符串" filename

options表示命令参数,详细的参数列表如下:

-A<显示行数> 除了显示'查找字符串'那一行,还显示该行之后指定的行数(A表示after),如:显示'查找字符串'那行及后面的3行,grep -A3 "aa" ./other.log
-a 将binary文件以text文件的方式查找数据
-B<显示行数> 除了显示'查找字符串'那一行,还显示该行之前指定的行数(B表示before),如:显示'查找字符串'那行及前面的3行,grep -B3 "aa" ./other.log
-c 计算找到'查找字符串'的次数
-E 可以搜索多个关键字,如:grep -E "aa|bb" ./other.log
-e 可以搜索多个关键字,如:grep -e "aa" -e "bb" ./other.log
-i 忽略大小写
-n 输出行号
-r 明确要求搜索子目录
-v 反向输出,即输出不包含'查找字符串'的行
--color=auto 执行结果中的'查找字符串'信息高亮显示(可以简写成--color

实例操作

1. 搜索多个关键字

1
2
3
4
5
#在文件other.log中搜索包含“aa”或“bb",关键字高亮显示(2种方式)
grep -E "aa|bb" --color ./other.log
grep -e "aa" -e "bb" --color ./other.log
#在文件other.log中搜索既包含“aa”又包含“bb”(这里管道符有关键作用)
grep "aa" ./other.log|grep "bb"

2. 搜索关键字所在行的前后n行

1
2
3
#搜索关键字“aa”所在行的前后3行(2种方式)
grep -A3 -B3 "aa" ./other.log
grep -C3 "aa" ./other.log

 3. #搜索文件名中不包含数字,忽略子目录,文件中包含关键字20170706000100000000000023402625,关键字高亮显示

1
find ./* ! -name "*[0-9]*" | xargs grep --color "20170706000100000000000023402625"

 

posted on   阿泰555  阅读(829)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示