Linux grep 命令详解及示例大全

文章目录

      • 一、基本语法
      • 二、常用选项及示例
        • 1. 基本匹配:查找包含某字符串的行
        • 2. 忽略大小写匹配 -i
        • 3. 显示行号 -n
        • 4. 递归查找目录下的文件 -r 或 -R
        • 5. 仅显示匹配的字符串 -o
        • 6. 使用正则表达式 -E(扩展)或 egrep
        • 7. 显示匹配前后行 -A, -B, -C
        • 8. 统计匹配的行数 -c
        • 9. 仅显示文件名 -l(小写 L)
        • 10. 仅显示不匹配的行 -v
        • 11. 匹配整词 -w
        • 12. 匹配整行 -x
        • 13. 查找多个关键字 -e
        • 14. 在输出中高亮匹配内容 --color
        • 15. 查找二进制文件中的字符串 -a
      • 三、实用技巧合集
        • 1. 查找所有包含 IPv4 地址的行
        • 2. 排除某些文件类型
        • 3. 将结果输出到新文件
      • 四、总结

grep(Global Regular Expression Print)是 Linux/Unix 中非常强大的文本搜索工具,用于查找符合条件的字符串。它支持正则表达式、递归搜索、高亮显示等功能,是开发、运维人员的常用工具之一。

本文将全面介绍 grep 命令的常用选项,并结合示例帮助你掌握其使用技巧。

一、基本语法

grep [选项] '模式' 文件

二、常用选项及示例

1. 基本匹配:查找包含某字符串的行
grep "main" hello.c

说明:查找 hello.c 文件中所有包含 main 的行。

2. 忽略大小写匹配 -i
grep -i "hello" example.txt

说明:无论大小写,匹配 hello、Hello、HELLO 等。

3. 显示行号 -n
grep -n "return" hello.c

说明:显示每一行匹配内容所在的行号,便于定位。

4. 递归查找目录下的文件 -r 或 -R
grep -r "TODO" ./src/

说明:递归搜索 ./src/ 目录下所有文件中包含 TODO 的行。

5. 仅显示匹配的字符串 -o
grep -o "[0-9]\{3\}-[0-9]\{4\}" phones.txt

说明:只输出匹配的电话号码格式(如 123-4567),不显示整行。

6. 使用正则表达式 -E(扩展)或 egrep
grep -E "jpg|png|gif" files.txt

或者

egrep "jpg|png|gif" files.txt

说明:查找包含 jpg、png 或 gif 的行。

7. 显示匹配前后行 -A, -B, -C
grep -A 2 "error" log.txt

说明:显示匹配到 error 的行及其后面两行。

grep -B 2 "error" log.txt

说明:显示匹配行及其前两行。

grep -C 2 "error" log.txt

说明:显示匹配行以及前后各两行。

8. 统计匹配的行数 -c
grep -c "include" hello.c

说明:统计包含 include 的行数。

9. 仅显示文件名 -l(小写 L)
grep -l "main" *.c

说明:列出所有包含 main 的 .c 文件名。

10. 仅显示不匹配的行 -v
grep -v "^#" config.txt

说明:显示不以 # 开头的行(忽略注释)。

11. 匹配整词 -w
grep -w "int" hello.c

说明:只匹配单独出现的 int,不会匹配 print 或 integer。

12. 匹配整行 -x
grep -x "int main()" hello.c

说明:仅当整行完全匹配 int main() 时才显示。

13. 查找多个关键字 -e
grep -e "error" -e "fail" log.txt

说明:匹配包含 error 或 fail 的行。

14. 在输出中高亮匹配内容 --color
grep --color "main" hello.c

说明:将 main 高亮显示,方便快速识别。

15. 查找二进制文件中的字符串 -a
grep -a "PNG" image.png

说明:将二进制文件当作文本处理,可用于检查文件头等。

三、实用技巧合集

1. 查找所有包含 IPv4 地址的行
grep -Eo "[0-9]{1,3}(\.[0-9]{1,3}){3}" access.log
2. 排除某些文件类型
grep -r --exclude="*.o" "malloc" .
3. 将结果输出到新文件
grep "define" config.h > defines.txt

四、总结

选项 含义
-i 忽略大小写
-n 显示行号
-v 反向匹配
-c 统计匹配行数
-l 只显示文件名
-r 递归查找目录
-o 仅输出匹配部分
-A/-B/-C 显示匹配前后行
–color 高亮显示
-E / egrep 扩展正则

掌握 grep,你就拥有了一把在文本中快速定位问题的“放大镜”。无论是日志分析、源码检索,还是数据提取,grep 都能大大提高你的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【排序算法】快速排序(全坤式超详解)———有这一篇就够啦

【排序算法】——快速排序 目录 一:快速排序——思想 二:快速排序——分析 三:快速排序——动态演示图 四:快速排序——单趟排序 4.1:霍尔法 4.2:挖坑法 4.3:前后指针法 五:…

【platform push 提示 Invalid source ref: HEAD】

platform push 提示 Invalid source ref: HEAD 场景:环境:排查过程:解决: 场景: 使用platform push 命令行输入git -v 可以输出git 版本号,但就是提示Invalid source ref: HEAD,platform creat…

x-cmd install | Tuistash - Logstash 实时监控,告别图形界面,高效便捷!

目录 核心优势,一览无遗安装适用场景,广泛覆盖功能亮点,不容错过 还在为 Logstash 的监控而头疼吗?还在频繁切换图形界面查看数据吗?现在,有了 Tuistash,一切都将变得简单高效! Tui…

【JEECG】BasicTable单元格编辑,插槽添加下拉组件样式错位

1.功能说明 BasicTable表格利用插槽&#xff0c;添加组件实现单元格编辑功能&#xff0c;选择组件下拉框错位 2.效果展示 3.解决方案 插槽内组件增加&#xff1a;:getPopupContainer"getPopupContainer" <template #salesOrderProductStatus"{ column, re…

论文阅读笔记——ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors

RoboGround 论文 一类中间表征是语言指令&#xff0c;但对于空间位置描述过于模糊&#xff08;“把杯子放桌上”但不知道放桌上哪里&#xff09;&#xff1b;另一类是目标图像或点流&#xff0c;但是开销大&#xff1b;由此 GeoDEX 提出一种兼具二者的掩码。 相比于 GR-1&#…

K8S的使用(部署pod\service)+安装kubesphere图形化界面使用和操作

master节点中通过命令部署一个tomcat 查看tomcat被部署到哪个节点上 在节点3中进行查看 在节点3中进行停止容器&#xff0c;K8S会重新拉起一个服务 如果直接停用节点3&#xff08;模拟服务器宕机&#xff09;&#xff0c;则K8S会重新在节点2中拉起一个服务 暴露tomcat访…

纷析云开源财务软件:重新定义企业财务自主权

痛点直击&#xff1a;传统财务管理的三大桎梏 “黑盒”困局 闭源商业软件代码不可见&#xff0c;企业无法自主调整功能&#xff0c;政策变化或业务升级依赖厂商排期&#xff0c;响应滞后。 数据托管于第三方平台&#xff0c;存在泄露风险&#xff0c;合规审计被动受限。 成本…

mybatis 的多表查询

文章目录 多表查询一对一一对多 多表查询 一对一 开启代码片段编写 专注于 SQL的 编写 JDBC 的写法&#xff0c;注重于 SQL mybatis 在 一对一查询时&#xff0c;核心在于 建立每个表对应的实体类主键根据 主键 id 进行查询&#xff0c;副标根据 设定外键进行查询 在 SQL编写…

Scrapy爬虫实战:如何用Rules实现高效数据采集

Scrapy是一个强大的Python爬虫框架&#xff0c;而其中的Rules类则为爬虫提供了更高级的控制方式。本文将详细介绍如何在Scrapy中使用Rules&#xff0c;以及各个参数的具体作用&#xff0c;并结合实际场景说明Rules的必要性。 为什么需要Rules&#xff1f; 在Web爬取过程中&…

ActiveMQ 性能优化与网络配置实战(一)

一、引言 在当今分布式系统和微服务架构盛行的时代&#xff0c;消息中间件作为实现系统间异步通信、解耦和削峰填谷的关键组件&#xff0c;其重要性不言而喻。ActiveMQ 作为一款广泛应用的开源消息中间件&#xff0c;凭借其对多种消息协议的支持、灵活的部署方式以及丰富的功能…

免费视频压缩软件

一、本地软件&#xff08;支持离线使用&#xff09; 1. HandBrake 平台&#xff1a;Windows / macOS / Linux 特点&#xff1a;开源免费&#xff0c;支持多种格式转换&#xff0c;提供丰富的预设选项&#xff08;如“Fast 1080p”快速压缩&#xff09;&#xff0c;可自定义分…

消除AttributeError: module ‘ttsfrd‘ has no attribute ‘TtsFrontendEngine‘报错输出的记录

#工作记录 尝试消除 消除“模块ttsfrd没有属性ttsfrontendengine”的错误的记录 报错摘录&#xff1a; Traceback (most recent call last): File "F:\PythonProjects\CosyVoice\webui.py", line 188, in <module> cosyvoice CosyVoice(args.model_di…

Acrel-EIoT 能源物联网云平台在能耗监测系统中的创新设计

摘要 随着能源管理的重要性日益凸显&#xff0c;能耗监测系统成为实现能源高效利用的关键手段。本文详细介绍了基于安科瑞Acrel-EIoT能源物联网云平台的能耗监测系统的设计架构与应用实践。该平台采用分层分布式结构&#xff0c;涵盖感知层、网络层、平台层和应用层&#xff0…

计算机网络-同等学力计算机综合真题及答案

计算机网络-同等学力计算机综合真题及答案 &#xff08;2003-2024&#xff09; 2003 年网络 第二部分 计算机网络&#xff08;共 30 分&#xff09; &#xff08;因大纲变动因此 2004 年真题仅附真题&#xff0c;不作解析。&#xff09; 一、填空题&#xff08;共 10 分&#…

PyTorch常用命令详解:助力深度学习开发

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4-turbo模型生成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认其准…

深度学习:梯度下降法的数学原理

梯度下降法——是一种最优化算法,用于找到函数的局部极小值或全局最小值。它基于函数的梯度(或偏导数)信息来更新参数,目标是通过逐渐调整参数值来最小化目标函数的值。在机器学习算法中,梯度下降是最常采用的方法之一,尤其是在深度学习模型中,BP反向传播方法的核心就是…

刷leetcodehot100返航版--哈希表5/5、5/6

回顾一下之前做的哈希&#xff0c;貌似只有用到 unordered_set&#xff1a;存储无序元素unordered_map&#xff1a;存储无序键值对 代码随想录 常用代码模板2——数据结构 - AcWing C知识回顾-CSDN博客 1.两数之和5/5【30min】 1. 两数之和 - 力扣&#xff08;LeetCode&am…

openwrt 使用quilt 打补丁(patch)

1,引入 本文简单解释如何在OpenWRT下通过quilt命令打补丁--patch&#xff0c;也可查看openwrt官网提供的文档 2&#xff0c;以下代码通过编译net-snmp介绍 ① 执行编译命令之后&#xff0c;进入build_dir的net-snmp-5.9.1目录下&#xff0c;改目录即为snmp最终编译的目录了 /…

【开发工具】Window安装WSL及配置Vscode获得Linux开发环境

笔者面试时需要本地IDE手撕代码并测试&#xff0c;但是windows开发环境用不习惯&#xff0c;Min64和json配置也比较麻烦&#xff0c;因此采用WSLvscode的方式快速配置Linux开发环境 WSL安装 直接在微软商店搜索WSL即可 系统设置 开始菜单搜索启用或关闭 Windows 功能&…

【C语言】初阶数据结构相关习题(一)

&#x1f386;个人主页&#xff1a;夜晚中的人海 今日语录&#xff1a;人的生命似洪水在奔流&#xff0c;不遇着岛屿、暗礁&#xff0c;难以激起美丽的浪花。——奥斯特洛夫斯基 文章目录 ⭐一、判定是否互为字符重排&#x1f389;二、 回文排列&#x1f680;三、字符串压缩&am…