LINUX的GREP命令介绍和使用

linux之用 grep -r 关键字 快速搜索在目录下面的含有关键字的文件 1、快速搜索在目录下面的含有关键字的文件 我们采用下面命令 cd directories grep -r 关键字 2、搜索结果 阅读详情

在开源操作系统 Linux 的广阔领域中,grep 命令占有重要地位。 grep 命令是“全局正则表达式打印”的缩写,是一种广泛使用的 Linux 工具,它使用户能够根据特定模式搜索文本或输出。该命令行实用程序对于高效的文件和数据管理是不可或缺的,是 Linux 操作的基石。

grep 命令是什么?

该grep命令是一个文本搜索实用程序,允许用户在文件中搜索与正则表达式模式匹配的行并将结果返回到输出。它是查找字符串和模式或分析大量文本数据的强大工具。 grep 命令区分大小写,并且可以接受来自标准输入或文件的输入。

为什么要使用 grep 命令?

该grep命令的用处在于其多功能性和强大功能。无论您是通过搜索日志来调试问题,还是通过代码搜索特定功能,甚至是查找具有特定关键字的文件,该命令grep都是 Linux 用户工具包中不可或缺的工具。它过滤输出的能力使其成为与其他命令进行管道传输以进一步细化输出的理想命令。

grep 命令的不同选项

grep 命令不带任何选项

该grep命令最简单的形式如下:

grep 'pattern' file

该命令将在文件中搜索包含该模式的行并将其打印到标准输出。

带选项的 grep 命令

有多种选项可与该grep命令一起使用来修改其功能。一些常用的有:

  • -i:使搜索不区分大小写。
  • -v:反转搜索,打印与模式不匹配的行。
  • -r或-R:通过目录执行递归搜索。
  • -l:返回找到模式的文件名而不是行。
  • -n:显示输出行的行号。

选项的用法示例:

grep -i 'pattern' file

此命令将对文件中的模式执行不区分大小写的搜索。

列出与模式匹配的行

主要用途grep是打印与特定模式匹配的行。例如:

grep 'hello' file.txt

这将打印 file.txt 中包含单词“hello”的所有行。

列出与模式不匹配的行

使用该-v选项,我们可以打印与模式不匹配的行:

grep -v 'hello' file.txt

此命令将打印 file.txt 中不包含单词“hello”的所有行。

不区分大小写的搜索

该-i选项允许不区分大小写的搜索:

grep -i 'hello' file.txt

此命令将打印 file.txt 中包含“hello”的所有行,无论大小写。

跨多个文件搜索

该grep命令还可以搜索多个文件:

grep 'hello' file1.txt file2.txt

此命令将从 file1.txt 和 file2.txt 打印包含“hello”的行。

grep 命令的高级用法

通过 grep 命令使用正则表达式

该grep命令可以利用强大的正则表达式来匹配复杂的模式。例如:

grep '^hello' file.txt

此命令将打印 file.txt 中以“hello”开头的行。

将 grep 命令与管道和其他命令结合使用

该grep命令可以通过管道与其他命令结合起来执行更复杂的操作。例如,您可以列出目录中的所有文件并根据模式过滤它们:

ls | grep '.txt'

此命令将列出当前目录中名称中包含“.txt”的所有文件。

示例 1:基本模式搜索

文件中模式的基本搜索:

grep 'hello' file.txt

这将打印 file.txt 中包含“hello”的所有行。

示例 2:不区分大小写的搜索

不区分大小写的模式搜索:

grep -i 'hello' file.txt

此命令将打印包含“hello”的行,无论大小写。

示例 3:反向模式搜索

搜索不包含模式的行:

grep -v 'hello' file.txt

此命令将打印不包含“hello”的行。

示例 4:带有输出线的行号

使用输出行打印行号:

grep -n 'hello' file.txt

此命令将打印包含“hello”的行及其行号。

示例 5:递归搜索

对模式执行递归搜索:

grep -r 'hello' /home/user/

此命令将在 /home/user/ 目录及其子目录中递归搜索“hello”。

示例 6:带有输出行的文件名

打印文件名以及输出行:

grep -l 'hello' *

此命令将打印当前目录中包含单词“hello”的文件的名称。

示例 7:计算模式的出现次数

计算包含特定模式的行数:

grep -c 'hello' file.txt

此命令将计算并显示 file.txt 中包含“hello”的行数。

示例 8:正则表达式搜索

搜索以特定模式开头的行:

grep '^hello' file.txt

此命令将打印 file.txt 中以“hello”开头的行。

示例 9:显示匹配前后的字符

显示匹配前后一定数量的字符:

grep -o -P '.{0,10}hello.{0,10}' file.txt

此命令将打印模式“hello”之前的 10 个字符和之后的 10 个字符。

示例 10:在压缩文件中搜索

在没有显式解压缩的压缩文件中搜索:

zgrep 'hello' file.txt.gz

该命令将在压缩文件 file.txt.gz 中搜索“hello”。

示例 11:仅显示匹配的模式

仅显示匹配的模式:

grep -o 'hello' file.txt

此命令将仅打印 file.txt 中的单词“hello”,忽略该行的其余部分。

示例 12:在递归搜索中排除目录

在递归搜索期间排除某些目录:

grep --exclude-dir={dir1,dir2} -r 'hello' .

该命令将在当前目录中递归搜索“hello”,不包括 dir1 和 dir2。

示例 13:使用扩展正则表达式

使用扩展正则表达式进行复杂模式匹配:

grep -E 'hello|world' file.txt

此命令将打印 file.txt 中包含“hello”或“world”的行。

示例 14:仅匹配整个单词

仅匹配整个单词,不包括部分单词匹配:

grep -w 'hello' file.txt

此命令将打印 file.txt 中包含整个单词“hello”的行。

示例 15:在递归搜索中排除文件

在递归搜索期间排除某些文件:

grep --exclude={file1,file2} -r 'hello' .

该命令将在当前目录中递归搜索“hello”,不包括file1和file2。

高级 grep 命令示例

示例 1:将 grep 与其他命令结合使用

grep当与其他命令结合使用时,可以进一步增强 的功能。例如,要计算与 Web 服务器的活动连接数,我们可以grep使用netstat:

netstat -an | grep ':80' | grep 'ESTABLISHED' | wc -l

此命令将打印服务器上端口 80 的活动连接数。

示例 2:将 grep 与正则表达式结合使用

要搜索以特定模式结尾的行,我们可以使用grep正则表达式:

grep 'world$' file.txt

此命令将打印 file.txt 中以“world”结尾的行。

示例 3:将 grep 与正则表达式结合使用以实现多种模式

对于涉及多个模式的更复杂的模式匹配,我们可以使用grep扩展正则表达式:

grep -E '^(error|warning):' file.txt

此命令将打印 file.txt 中以“错误:”或“警告:”开头的行。

示例 4:在 Bash 脚本中使用 grep

grep可以在 bash 脚本中使用,根据是否找到模式来执行操作。例如:

if grep -q 'error' file.txt; then
    echo 'Error found!'
else
    echo 'No errors found.'
fi

该脚本将打印“发现错误!”如果在 file.txt 中找到“错误”一词,并且“未发现错误”。如果不是的话。

示例 5:使用 grep 在二进制文件中搜索模式

尽管grep通常用于文本搜索,但它也可以搜索二进制文件中的模式:

grep -a 'hello' binaryfile
GREP命令常见用法 常用参数: -a #不要忽略二进制数据 -A #除了显示符合范本样式的那一行之外,并显示该行之后的内容 -b #在显示符合范本样式的那一行之外,并显示该行之前的内容 -B #除了显示符合样式的那一行之外,并显示该行之前的内容 -c #计算符合范本样式的列数 -C #除了显示符合范本样式的那一列之外,并显示该列之前后的内容 -d #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作 -e #指定字符串作为查找文件内容的范本样式 -E #将范本样式为延伸的普 阅读详情

相关推荐

Grep命令常见用法

使用Grep命令查找多个字符串 多模式 Grep 命令 grep 命令支持三种正则表达式语法:Basic、Extended 和 Perl-compatible 。当没有指定正则表达式类型时,grep 命令将搜索模式默认为基本正则表达式。 要搜索多个匹配模式,可以使用 OR ( alternation ) 运算符。我们可以用 OR 运算符 |( pipe )指定不同的匹配项,这些匹配项可以是文本字符串,也可以是表达式集。值得注意的是,在所有正则表达式运算符中,这个运算符的优先级是最低的。 使用 grep 命令

qq_40907977的博客 5434

linux查找文件内容命令之grep -r ‘关键字‘

Linux操作系统中 grep 命令用于查找指定文件目录下文件里符合条件的字符串, grep 指令会把含有关键字的那一行显示出来。若不指定任何文件名称,则当前目录就是grep命令的需要查找的文件的目录,若所给予的文件名为 -,则 grep 命令会从标准输入设备读取数据。grep 命令非常强大,用起来也很方便,了解它的用法之后,在文件中找关键字就容易多了,你不觉得吗?

liqinglonguo的博客 2万+

linux grep命令使用详解

linux文本分析工具grep命令使用详解

congge 4万+

grep -r和-R的区别

grep -r和-R的区别

sqlora的专栏 7843

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

使用Dify搭建音频文件转文本工作流

使用Dify搭建音频文件转文本工作流

zyx_bx的博客 5623

linux命令grep和find怎么用,Linux下find和grep常用命令及区别介绍

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区别的。区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。一.find命令基本格式:find path expression1.按照文件...

weixin_29786123的博客 546

芯片工程师-必须掌握的linux操作-第一讲

一个从材料专业,转行芯片验证初级工程师,自己也是从0基础开始学习入门,更知道0基础的人应该怎么去学习。 现在工作三个多月了,特地花时间给大家写这篇文章。希望能关注、支持下。 为什么芯片验证工程师必须要学习linux命令? 答: ① 芯片工程师主要的职责,就是与IC设计工程师和系统工程师密切合作,开发验证平台,能够根据项目要求产生测试计划,产生代码及功能覆盖率,撰写验证报告。 ②简单点说,主要工作内容,是编写代码去验证设计的对不对。 那么问题来了,编写代码,在什么环境呢,我现在告诉你,都是在linux系统中进

小白蒋-材料转行芯片验证 4841

Linux chmod和grep命令的使用介绍

表示其他用户的访问权限,这权限组合表示其他用户对文件拥有可读和可执行权限。

2301_78549752的博客 251

【RT-DETR涨点改进】独家创新改进篇 | AAAI2024 | RT-DETR引入CFBlock增强对长程依赖和全局语义信息的建模能力,有助于提升复杂场景下小目标、遮挡目标的检测精度

本文给大家介绍在RT-DETR中引入CFBlock模块,能够有效提升模型对长程依赖和全局语义信息的建模能力,在保持轻量化和高效推理的基础上增强特征表达力,特别有助于提升复杂场景下小目标、遮挡目标的检测精度,从而实现更优的精度与速度平衡。

Ai缝合怪、助力小伙伴高效发论文 260

STM32N6570-DK识别STLINK问题,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2209

Linux下find和grep常用命令及区别介绍

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区别的。   区别: (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。   一.find命令     基本格式:find path expression     1.按照文件名查找 ...

scjie168的博客 638

第02章:HSA-Runtime架构概览

摘要: 本章深入解析HSA Runtime的三层架构设计,包括公共API层(C语言接口)、核心实现层(C++业务逻辑)和驱动抽象层(硬件交互)。重点介绍了Runtime的核心组件(Agent、Queue、Signal、Memory)及其关系,以及初始化流程、配置选项和调试功能。通过学习,读者将掌握HSA Runtime的整体架构,为后续模块学习奠定基础。

图形/计算GPU的驱动与虚拟化技术分享园地 2922

linux常用命令介绍 03 篇——常用的文本处理工具之grep和cut(以及部分正则使用)

linux常用命令介绍 03 篇——常用的文本处理工具之grep和cut(以及部分正则使用)

@素素~的博客 732

【APM】在Kubernetes中搭建OpenTelemetry+Loki+Tempo+Grafana链路追踪(实战一,Loki日志中查看链路追踪数据)

这对于那些不能直接控制 JVM 启动参数的应用特别有用,比如通过 JNI (Java Native Interface) 调用 JVM 的应用、脚本中嵌入的 JVM 应用,或者一些服务管理工具自动启动的服务。这为用户提供了一个灵活的架构,可以根据需要选择最适合自己的追踪解决方案,或者根据环境(如开发、测试、生产)的不同配置不同的后端。: OpenTelemetry SDK 提供了丰富的特性,如自动追踪上下文传播、手动追踪跨度的创建与关联、标签和事件的添加等,使得追踪数据更加丰富和有用。

CN_Eden 3241

基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)

TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。简单来说就是:一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章。这也就是TF-IDF的含义。

m0_64336780的博客 1万+

Linux学习打卡——一些命令扩展及grep用法和管道介绍

1:命令扩展: 在使用mv或cp命令时困=可能会使文件丢失,而Linux中文件的操作是不可逆转的,因此我们为了防止重要文件丢失,使用-i选项来进行提醒,防止误操。 查看文件内容: cat:格式:cat 文件名 对应英文:concatenate 作用:查看文件内容、创建文件、文件合并、追加文件内容等等 more:格式:more 文件名 作用:分屏显示文件内容 cat与more区别: cat与more虽然都是显示文件内容,但二者还是有区别。cat是显示全部文件内容,

apple_73959427的博客 520

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux-grep命令(介绍了正则表达式和选项)

grep是一种强大的文本搜索工具,它使用正则表达式来进行匹配。

qingcunsuiyue的博客 395

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

linux中grep命令的用法

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的。 首先谈一下grep命令的常用格式为:grep [选项] ”模式“ [文件] grep家族总共有三个:grep,egrep,fgrep。 常用选项:   -E :开启扩展(Extend)的正则表达式。   -i :忽略大小写(ignore case)。   -v :反过来(inv...

Mr_moving 3686

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux命令find和grep详解

find 查找文件grep 查找文件内容中的字符串。

明天你好的博客 9119

Linux中find和grep的所有用法

命令作用示例find查找文件和目录grep在文件内容中搜索结合使用。

qq_67835519的博客 2583
上一篇: PVE下扩展openwrt for x86分区大小
下一篇: 在LINUX系统上使用rsync命令
贵族白
博客等级 码龄22年 45粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值