【linux】(8)文件搜索grep

grep 用于在文件中搜索指定的模式(字符串或正则表达式),并输出匹配的行。

基本用法

grep [options] pattern [file...]

常用选项

  1. 基本搜索

    grep pattern filename
    

    例子:搜索文件 example.txt 中包含字符串 hello 的行。

    grep "hello" example.txt
    
  2. 忽略大小写

    grep -i pattern filename
    

    例子:忽略大小写搜索 hello

    grep -i "hello" example.txt
    
  3. 显示行号

    grep -n pattern filename
    

    例子:显示匹配行的行号。

    grep -n "hello" example.txt
    
  4. 递归搜索

    grep -r pattern directory
    

    例子:递归搜索目录中的所有文件。

    grep -r "hello" /path/to/directory
    
  5. 显示匹配的文件名

    grep -l pattern filename
    

    例子:只显示包含匹配模式的文件名。

    grep -l "hello" example.txt
    
  6. 仅显示匹配部分

    grep -o pattern filename
    

    例子:只显示匹配的部分而不是整行。

    grep -o "hello" example.txt
    
  7. 统计匹配行数

    grep -c pattern filename
    

    例子:统计匹配行的数量。

    grep -c "hello" example.txt
    
  8. 反转匹配

    grep -v pattern filename
    

    例子:显示不包含匹配模式的行。

    grep -v "hello" example.txt
    
  9. 显示前后行

    grep -A num pattern filename   # 显示匹配行及其后 num 行
    grep -B num pattern filename   # 显示匹配行及其前 num 行
    grep -C num pattern filename   # 显示匹配行及其前后 num 行
    

    例子:显示匹配行及其前后 2 行。

    grep -C 2 "hello" example.txt
    
  10. 使用正则表达式

    grep -E "pattern" filename
    

    例子:使用扩展正则表达式搜索。

    grep -E "h(ello|i)" example.txt
    

组合选项

  1. 忽略大小写并显示行号

    grep -in "hello" example.txt
    
  2. 递归搜索并显示匹配的文件名

    grep -rl "hello" /path/to/directory
    
  3. 仅显示匹配部分并统计匹配行数

    grep -co "hello" example.txt
    

高级用法

  1. 在文件列表中搜索

    grep "hello" file1 file2 file3
    
  2. 在命令输出中搜索

    dmesg | grep "error"
    
  3. find 结合使用

    find /path/to/search -type f -name "*.log" -exec grep "error" {} \;
    
  4. xargs 结合使用

    find /path/to/search -type f -name "*.log" | xargs grep "error"
    
  5. 使用 -P 选项支持 Perl 正则表达式

    grep -P "\bhello\b" example.txt
    

实战示例

  1. 搜索包含 IP 地址的行

    grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" example.txt
    
  2. 查找所有空行

    grep -E "^$" example.txt
    
  3. 查找包含单词的行

    grep -w "hello" example.txt
    
  4. 递归查找并排除某些目录

    grep -r --exclude-dir={dir1,dir2} "hello" /path/to/directory
    
  5. 查找并显示匹配行的上下文

    grep -C 3 "hello" example.txt
    

使用 grep 处理多行输出

  1. 搜索多行模式

    grep -Pzo "(?s)start.*?end" example.txt
    
  2. awk 结合使用

    awk '/start_pattern/,/end_pattern/' example.txt | grep "middle_pattern"
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

行业分析---造车新势力之极氪汽车

1 前言 在之前的博客中,笔者撰写了多篇行业类分析的文章(科技新能源): 《行业分析---我眼中的Apple Inc.》 《行业分析---马斯克的Tesla》 《行业分析---造车新势力之蔚来汽车》 《行业分析---造车新势力之小鹏汽车》 《行业分析-…

绘图黑系配色

随便看了几篇小论文,里面的黑配色挺喜欢的,虽然平时SCI系配色用的多,但看到纯黑配色与黑加蓝配色,那就是我最心上的最优style。

【JVM】JVM 内存结构

程序计数器 Cpu 要不停的切换执行线程,所以在切换回同一个线程的时候要知道程序执行到哪了,程序计数器(PC 计数器),用来存储指向下一条指令的地址,也就是将要执行的代码。 程序的分支、循环、跳转、异常处…

【论文解读】大模型的有效探索

一、简要介绍 论文提出的证据表明,通过有效地探索收集人类反馈以改进大型语言模型有实质性的好处。在论文的实验中,一个代理依次生成查询,同时拟合一个奖励模型的反馈收到。论文的最佳性能代理使用双汤普森抽样生成查询,其不确定性…

“香港世界”模型问世!颠覆传统SLAM技术,引领复杂定位新纪元!

论文标题: Hong Kong World: Leveraging Structural Regularity for Line-Based SLAM 论文作者: Haoang Li, Ji Zhao, Jean-Charles Bazin, Pyojin Kim, Kyungdon Joo, Zhenjun Zhao, Yun-Hui Liu 导读: 在视觉感知技术中,理解…

力扣 单链表元素删除解析及高频面试题

目录 删除元素的万能方法 构造虚拟头结点来应对删除链表头结点的情况 一、203.移除链表元素 题目 题解 二、19.删除链表中倒数第K个节点 题目 题解 三、 83.删除某个升序链表中的重复元素,使重复的元素都只出现一次 题目 题解 82.删除某个升序链表中的…

玛格家居从深交所转板北交所:营收净利润连年下滑,销售费用大增

《港湾商业观察》施子夫 近日,玛格家居股份有限公司(以下简称,玛格家居)发布公告,重庆证监局已经受理其北交所上市的备案申请,辅导机构为国泰君安证券。 公开信息显示,2022年1月,玛…

DreamView数据流

DreamView数据流 查看DV中界面启动dag,/apollo/modules/dreamview_plus/conf/hmi_modes/pnc.pb.txt可以看到点击界面的planning按钮,后台其实启动的是/apollo/modules/planning/planning_component/dag/planning.dag和/apollo/modules/external_command…

使用网络抓取器进行网络抓取--你需要了解的一切

什么是网页抓取? 网页抓取是一种计算机化过程,用于从网站上收集大量数据。它也常被称为网页数据提取或网页数据抓取。 网页抓取需要两个部分 - 爬虫和抓取器。 爬虫是一种AI算法,通过跟随互联网中的链接来搜索所需的特定数据。抓取器是一种…

Python对象不可哈希?教你几招解决!

目录 1、什么是可哈希?🚀 1.1 哈希基础理论 1.2 可哈希对象定义🔍 示例代码: 1.3 Python中哈希的作用 1.4 哈希表与性能提升📈 应用实例代码: 2、Python中的哈希特性🔑 2.1 不变性与哈希值🔄 示例代码展示: 2.2 实现细节深入探讨📚 深入代码细节:…

小区服务前台小程序的设计

管理员账户功能包括:系统首页,个人中心,住户管理,管理员管理,员工管理,安保管理,安保分配管理,客服聊天管理 微信端账号功能包括:系统首页,公告,…

【传知代码】揭秘AI如何揪出图片中的“李鬼”(论文复现)

在数字化时代,我们时常被各种图像信息所包围。然而,这些图像中有时隐藏着不为人知的秘密——被篡改的文字或图像。这些被篡改的内容可能误导我们的判断,甚至在某些情况下造成严重的后果。幸运的是,随着人工智能(AI&…

免费开源AI生产力工具:内置专属ChatGPT、一键智能处理图片和视频(擦除水印、卡通漫画、无损放大、插值补帧、智能修复、3D转制、上色修复、合成整理)

AI 生产力工具 免费开源,提升用户生产力,保障隐私和数据安全。提供高效便捷的AI解决方案,包括但不限于:内置专属ChatGPT、一键批量智能处理图片和视频等。 主要特点 免费开源:免费使用,源代码开放&#…

使用Nginx反向代理KKFileView遇到问题

使用KKFileView 4.0 以上版本 在KKFileView官网上,关于使用Nginx代理,建议配置如下 一、修改Nacos 在Nginx的conf文件夹中修改 nginx.conf ,新加 红框内的IP地址为代理服务器地址(即安装KKFileView的服务器地址) 二、修改KKFil…

逻辑这回事(七)---- 器件基础

Xilinx FPGA创建了先进的硅模块(ASMBL)架构,以实现FPGA具有针对不同应用程序领域优化的各种功能组合的平台。通过这一创新,Xilinx提供了更多的设备选择,使客户能够为其特定设计选择具有正确的功能和功能组合的FPGA。ASMBL体系结构通过以下方式突破了传统的设计障碍:消除几…

一个时代的结束:Centos7将在6月30日退出历史舞台

友情提醒: 如果你使用的是曾经辉煌一时的CentOS Linux 7,一直拖延没有迁移,那么现在距离它正式寿终正寝还有不到一周的时间。 CentOS Linux 7 的结束日期仍定在2024年6月30日。红帽早在 2020 年就做出了有争议的举动,将重点转移到…

前后端交互整合 - Wiki

集成 Http 库 axios 首先在前端工程中安装 axios ,切换为 wiki / web 目录下,安装命令行为 npm install axios --save 通过 axios 调用电子书列表接口: 定义 setup( ) 方法,页面被调用时便会执行此方法,在方法中要想使用 axios ,首先需要引入 axios 包: import axios f…

网络安全 文件上传漏洞-18 第十八关 Pass-18

点击进入第十八关,并选择显示代码: //index.php $is_upload false; $msg null; if (isset($_POST[submit])) {require_once("./myupload.php");$imgFileName time();$u new MyUpload($_FILES[upload_file][name], $_FILES[upload_file][tmp…

百日筑基第七天-JAVA开发IDEA调试技巧(常用按钮)

百日筑基第七天-JAVA开发IDEA调试技巧(常用按钮) 1.Show Execution Point 快捷键:Alt F10 回到当前激活的断点处;当你的鼠标不在断点所处的行,点击之后,会立马复位到断点处; 2.Step Ove 快…

你需要精益管理咨询公司的N+1个理由

近年来,精益管理作为一种被全球众多知名企业验证过的成功管理模式,越来越受到企业的青睐。但是,为何在实施精益管理的过程中,众多企业纷纷选择请咨询公司来协助呢?今天,我们就来一起揭秘这背后的原因。 1. …