linux文本处理命令:文本搜索工具grep详解

news2024/11/25 0:25:29

目录

一、概述

二、基本语法

1、语法

2、常用选项

3、获取帮助

三、示例

1.  搜索文件中的字符串

2.  忽略大小写搜索

3.  显示匹配行的行号

4.  反向搜索

5.  递归搜索

6.  使用扩展正则表达式

7. 列出包含匹配项的文件  

8. 显示匹配行的上下文  

9. 使用正则表达式  

10. 只匹配完整的单词 

11. 显示不匹配的行   

12. 显示文件名但不显示匹配内容   

13. 显示匹配的内容而非整行   

四、扩展说明

1、正则表达式

2、文件列表

3、文件名和目录

4、环境变量


一、概述

        grep 是 Linux 和 Unix 系统中非常强大的文本搜索工具,它用于在文件中查找符合指定模式的行。grep 的名字来源于“Global Regular Expression Print”,即全局正则表达式打印。这个命令最初是在 Unix 系统中开发的,现在也是所有类 Unix 系统(包括 Linux)的标准工具之一。

        grep 使用正则表达式来搜索文本,并将匹配的行打印出来。该命令广泛用于文件内容的搜索、过滤和统计。

二、基本语法

1、语法

       grep [选项] 模式 [文件...]

        模式:要搜索的文本模式,可以是简单的字符串,也可以是复杂的正则表达式。

        文件:要搜索的文件列表。如果未指定文件,grep 会从标准输入(stdin)读取数据。

2、常用选项

        有如下常用选项

        -c:仅显示匹配的行数,而不是匹配的内容。

        -r 或 -R:递归搜索目录下的所有文件。

        -A n:显示匹配行及其后 n 行。

        -B n:显示匹配行及其前 n 行。

        -C n 或 --context=n:显示匹配行及其前后各 n 行。

        -i 或 --ignore-case:忽略大小写差异。

        -v 或 --invert-match:显示不匹配模式的行。

        -n 或 --line-number:显示匹配行的行号。

        -l 或 --files-with-matches:只列出包含匹配项的文件名。

        -L 或 --files-without-match:只列出不包含匹配项的文件名。

        -r 或 --recursive:递归地在目录中搜索。

        -H 或 --with-filename:在输出中总是显示文件名。

        -h 或 --no-filename:在输出中从不显示文件名(当搜索多个文件时有用)。

        -C 或 --context:显示上下文行。

        -A 或 --after-context:显示匹配行之后的上下文行。

        -B 或 --before-context:显示匹配行之前的上下文行。

        -E 或 --extended-regexp:使用扩展正则表达式。

        -F 或 --fixed-strings:将模式视为固定字符串而不是正则表达式。

        -w 或 --word-regexp:仅匹配整个单词。

        -o 或 --only-matching:只显示匹配的部分。

        -m 或 --max-count:限制匹配的最大数量。

3、获取帮助

       在命令行中输入指令:

             grep --help

       出现如下图所示的帮助信息:

三、示例

1.  搜索文件中的字符串

       grep "hello" file.txt

        在 file.txt 中搜索包含 "hello" 的行。

       执行结果如下:

2.  忽略大小写搜索

       grep -i "hello" file.txt

        在 file.txt 中搜索包含 "hello"、"Hello"、"HELLO" 等的行,忽略大小写。

       执行结果如下:

3.  显示匹配行的行号

       grep -n "hello" file.txt

        在 file.txt 中搜索包含 " hello " 的行,并显示这些行的行号。

       执行结果如下:

4.  反向搜索

       grep -v "error" log.txt

        在 log.txt 中搜索不包含 "error" 的所有行。

5.  递归搜索

       grep -r "function" /path/to/directory

        在 /path/to/directory 目录及其子目录下递归搜索包含 "function" 的行。

6.  使用扩展正则表达式

       grep -E "word1|word2" file.txt

        在 file.txt 中搜索包含 "word1" 或 "word2" 的行。

7. 列出包含匹配项的文件  

   grep -l "example" dir/  

8. 显示匹配行的上下文  

   grep -C 2 "example" file.txt 

9. 使用正则表达式  

   grep -E "example|test" file.txt  

10. 只匹配完整的单词 

   grep -w "example" file.txt  

11. 显示不匹配的行   

    grep -v "example" file.txt   

12. 显示文件名但不显示匹配内容   

    grep -l "example" /path/to/directory/   

13. 显示匹配的内容而非整行   

    grep -o "example" file.txt

   

四、扩展说明

        grep 命令因其灵活性和强大的正则表达式支持,在文本处理和数据分析中非常有用。掌握 grep 的基本用法和常用选项,可以根据具体需求定制搜索条件,可以大大提高在 Linux 系统下处理文本数据的效率。

1、正则表达式

        grep 支持基本正则表达式 (BRE) 和扩展正则表达式 (ERE)。默认情况下使用 BRE,而使用 -E 选项时使用 ERE。

2、文件列表

        如果没有指定文件名,则 grep 会从标准输入读取数据。

3、文件名和目录

        grep 可以处理单个文件、多个文件甚至是目录树。

4、环境变量

        可以通过设置环境变量来改变 grep 的行为,比如 GREP_OPTIONS。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


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

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

相关文章

从2013数学建模B题碎纸片拼接问题看递归和迭代思想

目录 1.递归实例说明 2.迭代实例说明 3.迭代思想在碎纸片拼接赛题的运用 1.递归实例说明 斐波那契数列可以使用递归,也可以使用数列的通项公式,但是这个地方建议使用数列的通项公式,因为这个递归的深度过大这个结果很难运行出来&#xff1…

使用WebDAV共享本地文件,轻量易用

特征: 使用 Golang 实现,性能极高。 最终编译成单个二进制文件,不需要 Apache 或类似的环境,依赖性很少。 支持浏览器访问。 可以在同一个端口上启用多个 WebDAV 服务,每个服务具有不同的挂载目录、用户名和密码。 良好…

嵌入式day20

feof: 检测文件是否到达结尾 ferroe: 检测文件是否发生错误 标准IO之文件定位 fseek() SEEK_END 指向最后一个字节的后一个,继续加,写文件,会将文件扩大 ftell() 获取…

STM32学习笔记1---LED,蜂鸣器

目录 GPIO LED 蜂鸣器 RCC外设 GPIO外设 总概 操作STM32的GPIO 代码 LED闪烁 LED流水灯 蜂鸣器! 连接方式 GPIO GPIO输出:向外驱动控制 GPIO输入:读取,捕获(信息)(控制&#xff09…

状压DP,abc359_d - Avoid K Palindrome

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 D - Avoid K Palindrome 二、解题报告 1、思路分析 数据量:N:1000,K:10 提示我们状态压缩 我们发现长度为K的字符串,我们可以用0表示A&#xff…

vue2项目如何引入element组件库以及如何使用element组件库

目录 一、创建项目二、进入项目1、先进入项目,![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a1ce9d928fdb4b5d85e6612f458a33db.png)2、路径栏输入cmd,然后回车3、输入code . ,然后回车 三、项目启动1、查看启动指令2、启动项目 …

VMwave安装Ubuntu20.04超详细图文教程(附VMwave17.5安装包)

VMwave安装 Ubuntu20.04 超详细图文教程 一、VMwave安装 官网下载 网盘下载 二、Ubuntu下载 三、Ubuntu20.04安装 四、安装VMwave tools 五、更改Ubuntu软件源 注:写教程的时候博主用的是VMware Workstation pro 17(VM17.5) 一、VMwave安装 以下我提供两…

常见中间件漏洞(一、Tomcat合集)

目录 一.Tomcat Tomcat介绍 1.1 CVE-2017-12615 影响范围 环境搭建 漏洞复现 1.2 后台弱口令部署war包 漏洞原理 影响版本 环境搭建 1.3 CVE-2020-1938 漏洞原理 影响版本 环境搭建 漏洞复现 一.Tomcat Tomcat介绍 tomcat是一个开源而且…

clion开发stm32f4系列(一)————移植rt-thread os系统

前言 本次使用的rt-thread的版本为5.0.2基于rt-thread sudio生成的源码进行拷贝和修改工程基于上次创建工程的项目进行修改。本次工程只是用了serial和pin组件,其他后面用到再进行添加 拷贝rt-thread源码库 通过CMakeLists来进行管理 顶级(rt-thread目录) cmake_minimum_req…

Tomcat常见漏洞复现

Tomcat介绍 tomcat是一个开源而且免费的jsp服务器,默认端口:8080,属于轻量级应用服务器。它可以实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。在历史上也披露出来了很多的漏洞,这里我们讲几个经典…

中国区域创新能力评价报告数据(2001-2023年)

《中国区城创新能力评价报告》是以中国区域创新体系建设为主题的综合性、连续性的年度研究报告。以区域创新体系理论为指导,利用大量的统计数据,综合、客观及动态地给出各省市创新能力的排名与分析。 一、数据介绍 数据名称:中国区域创新能力…

文件夹内鼠标右键没有git bash here?

文件夹内鼠标右键没有git bash here? 如何解决,只需要三步 1、window 搜索git 2、进入git bash 3、输入文件路径,(路径为反斜杠/) 例如: D:/Desktop/photo

设计模式的概念

设计模式主要分为三类:创建类的设计模式、结构型设计模式、行为型设计模式。 创建类的设计模式:简单工厂,工厂模式,抽象工厂,建造者,单例,原型 结构型设计模式:代理模式、享元模式 行…

国密SM4算法进行数据的加密、签名和验签、解密

文章目录 前言一、SM4算法介绍二、生成128位密钥工具类三、SM4Util工具类四、测试示例 前言 本文介绍了SM4算法的基本概念、安全性以及在Java中的应用,包括生成16字节密钥、加密、解密、签名和验签的过程,展示了如何在实际开发中使用SM4算法进行信息安全…

enq: HW - contention事件来啦

业务系统反应数据库慢,根据时间查看awr报告。 先看一眼事件名称 HW enqueue 用于序列化超出段高水位线的空间分配。如果同时向对象添加大量数据,则多个进程可能同时尝试在高水位线上方分配空间,从而导致争用。 既然是控制资源并发的enq&…

WiFi Analyzer:你的开源WIFI管家!【送源码】

无论是在家里还是在公司,手机连接 WiFi 时,总是会出现 WiFi 信号比较弱,网速变慢的情况。如何检测 WiFi 信号的情况呢?今天给大家推荐一个开源项目——WiFi Analyzer。 项目简介 WiFi Analyzer 是一个开源的 Android 应用程序&a…

母带混音插件-Musik Hack Master Plan 1.59 WiN-MAC,长期更新持续有效

Musik Hack Master Plan 1.59 WiN-MAC 一款专业的音频母带制作流程,只需简单的控制就能制作出适合发布的母带: 水晶般清晰的响度、丰富的模拟饱和度、相位一致的成像、物理磁带模拟,以及修复和监听混音的额外工具。 一。Musik Hack Master P…

在 PhpStorm 中为 .java 文件启用语法高亮,需要正确配置文件类型和关联语言。

点击访问我的技术博客https://ai.weoknow.comhttps://ai.weoknow.com 因为我同时使用java和php混编所以在一个项目中如果同时打开IntelliJ IDEA和PhpStorm不符合我完美主义的本性。 捣鼓了一下搞定了 1. 添加文件类型关联 将 .java 文件与 Java 语言支持关联: …

新160个crackme - 023-TraceMe

运行分析 需破解用户名和序列号 PE分析 C程序,32位,无壳 静态分析&动态调试 ida打开,由main函数向下分析,找到DialogFunc函数,并找到关键判断函数sub_401340 进入sub_401340函数,发现算法 发现byte_405…

xxl-job源码学习笔记

文章目录 一、简介二、下载源码三、模块介绍四、源码解析4.1、调度中心启动流程(xxl-job-admin)4.1.1、JobTriggerPoolHelper(触发任务执行的核心组件)4.1.2、JobRegistryHelper(维护和更新调度中心与执行器之间的注册…