一个命令玩转Linux文件搜索

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

grep 是 Linux 系统中非常常用的命令之一,它的主要功能是从文件中搜索匹配关键词的内容,并将这些行打印出来。对于很多人来说,可能觉得这个命令太简单了,这是因为他们只掌握了最基本的用法,而不懂更高级的玩法。

本文将为你介绍N种不一样的用法,带你玩转Linux文件搜索。

一. grep 基本用法

grep 的基本语法如下:

grep [选项] "模式" 文件

其中:

  • 模式:是你想要查找的字符串或正则表达式。

  • 文件:是你要查找的文件名。

示例 1:查找文件中的特定字符串

grep "hello" file.txt

这个命令会在 file.txt 中查找所有包含 hello 字符串的行,并打印出来。

示例 2:查找多个文件

grep "error" *.log

该命令将在当前目录下所有 .log 文件中查找包含 error 的行。


二. grep 常用选项

1. 忽略大小写 (-i)

默认情况下,grep 是区分大小写的。如果你不想区分大小写,可以使用 -i 选项。

grep -i "hello" file.txt

此命令会查找 hello、Hello、HELLO 等各种形式的字符串。

2. 显示行号 (-n)

-n 选项会显示匹配行的行号。

grep -n "hello" file.txt

输出结果中,grep 会在每行的前面添加行号,方便你定位匹配的位置。

3. 显示不匹配的行 (-v)

-v 选项用于显示没有匹配到的行,即反向匹配。

grep -v "hello" file.txt

此命令会输出 file.txt 中不包含 hello 的所有行。

4. 递归查找 (-r 或 -R)

grep 可以递归查找目录中的文件。使用 -r 或 -R 选项,grep 会在指定目录及其子目录下查找。

grep -r "error" /var/log/

此命令会递归地在 /var/log/ 目录下的所有文件中查找包含 error 的行。

5. 精确匹配整行 (-x)

如果你只想查找完全匹配的行,可以使用 -x 选项。

grep -x "hello" file.txt

这会只输出那些整行是 hello 的行,而不会输出包含 hello 的其他行。

6. 统计匹配的行数 (-c)

-c 选项用于统计文件中匹配的行数。

grep -c "hello" file.txt

输出结果将显示文件中包含 hello 的行数,而不会显示具体的内容。

7. 显示匹配的上下文行数 (-A, -B, -C)

有时你需要查看匹配行的上下文,即匹配行的前几行或后几行。grep 提供了以下选项:

  • -A n:显示匹配行后面的 n 行。

  • -B n:显示匹配行前面的 n 行。

  • -C n:显示匹配行前后的 n 行。

grep -C 3 "error" file.txt

此命令会显示包含 error 的行及其前后三行。

8. 使用正则表达式 (-E, -P)

grep 默认支持基础正则表达式。如果你想使用扩展正则表达式,可以使用 -E(相当于 egrep),如果你想使用 Perl 风格的正则表达式,可以使用 -P。

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

grep -E "error|warning" file.txt

此命令会查找 file.txt 中包含 error 或 warning 的行。

示例:使用 Perl 正则表达式

grep -P "\berror\b" file.txt

此命令会查找 error 作为单词出现的行,避免匹配类似 supererror 这样的字符串。

三. grep 高级用法

1. 查找目录中的特定类型文件

通过 --include 选项,grep 可以在指定类型的文件中进行搜索。

grep -r --include "*.txt" "pattern" /path/to/search

此命令会递归地在 /path/to/search 目录下所有 .txt 文件中查找符合 pattern 的行。

2. 排除特定类型文件

如果你不希望搜索某些类型的文件,可以使用 --exclude 选项。

grep -r --exclude "*.log" "pattern" /path/to/search

此命令会在 /path/to/search 目录下,排除 .log 文件,查找符合 pattern 的内容。

3. 查找多个模式 (-e)

你可以使用 -e 选项来指定多个匹配模式。

grep -e "pattern1" -e "pattern2" file.txt

这个命令会查找包含 pattern1 或 pattern2 的行。

4. 查找大文件中的匹配行

当文件非常大时,可以使用grep 的 --line-buffered 选项实时输出匹配行,而不是一次性输出所有结果。

grep --line-buffered "error" largefile.log

这样可以在文件很大的情况下,逐行输出匹配的结果,避免等待全部文件读取完成。

Android13配置selinux让system应用可读sys,proc,SN号 Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错.其修改方法会比Android11复杂一些.。 阅读详情

相关推荐

PHP 对接建行生活订单推送接口

php对接建行订单推送

qq_43647026的博客 562

Linux grep命令

linux grep 命令 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数

TCP/IP协议栈学习ing 3530

数学之美 | 图论和网络爬虫

文章目录概述图论网络爬虫分析BFSDFSBFS + DFS参考资料 概述 这篇文章主要给大家介绍一下计算机算法中非常重要的一部分——图论,以及它在生活中的应用——网络爬虫。   图论 离散数学是当代数学的一个重要的分支,也是计算机科学的数学基础。它又包括四个分支,而图论便是其中一支,另外三个分别是:数理逻辑、集合论、近代数学。 图论中的图由一些节点和边构成,比如下面这张图 。 在图论中一个很基础...

小小酥梨的博客 3231

Linux下查找文件(find、grep命令)

linux中一切皆文件的思想是重中之重,那么查找文件是学习Linux必须要掌握的技能。 一、find命令 1.按文件名 使用参数 -name ...

GG_Bruse的博客 22万+

优化QT QML中RTSP流播放延迟:海康摄像头实时监控实践

本文详细探讨了在QT QML中优化海康摄像头RTSP流播放延迟的实践方法。通过调整MediaPlayer缓冲策略、硬件加速、解码器优选等五大技巧,显著降低实时监控场景下的延迟问题。文章还提供了海康摄像头RTSP连接实战代码和避坑指南,帮助开发者快速实现高效流媒体播放。

weixin_28363123的博客 557

Tushare Day2——了解stock_basic数据并根据行业和地区进行统计

了解stock_basic数据 1  stock_basic基础信息2  导入包和stock_basic数据、查看基本信息3  根据行业列进行统计3.1  1.先把不同行业列举出来,看一下一共有多少种行业3.2  2.统计每个行业分别有多少家公司3.3  3.把行业从array的二维数组形式变成list形式3.4  4.把行业从list形式转换成文本形式3.5&nbsp

绒绒的Routine 2799

使用grep命令搜索文件内容--元字符详解01

grep 过滤文件内容作用:从文件中搜索出符合条件的内容grep [选项] 'pattern' 文件名称pattern :条件(由普通字符和正则表达式组成的条件)grep命令默认会显示符合过滤条件的整行内容。(grep命令的默认行为。如上图所示,利用管道符,将ifconfig ens33产生的结果交给grep “netmark”命令,筛选出文件ens33中带有netmark的整行代码。正则表达式:Regex《由一类特殊字符(元字符)组成的表达式》

ZHX2285的博客 2719

以太网PHY寄存器

并且,值得注意的是,由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。Bit10和bit11的区别是,bit11的配置在强制情况下生效,PHY只能工做与bit11指定的工作模式,而bit10的配置在非强制配置情况下生效,仅仅控制PHY在AN时候的优先级,偏向于Maser或者Slave,但是最终的工作模式看协商的结果,不一定和优先级配置的结果一致。

mangofu的博客 293

如何使用 Grep 命令在 Linux 中搜索文件

以下模式将匹配包含 co(any_leter_except_l)a 的任何字符串组合,例如 coca,cobalt 等,但与包含 cola 的行不匹配,要显示包含与模式匹配的 sting 的行数,请使用 -n(或 --line-number)选项。上面的示例中未打印该行,因为Nginx的启用站点的目录中的文件是sites-available目录中的配置文件的符号链接。要禁止默认 grep 输出并仅打印包含匹配模式的文件的名称,可以使用 -l(或 --files-with-matches)选项。

lvyuanj的专栏 5816

ABAP Reduced Message Types:用精简 IDoc + Change Pointer,把主数据分发做得又快又省

本文介绍了SAP系统集成中主数据分发的精简优化方法。通过创建"精简消息类型"(Reduced Message Types),可以在不改标准IDoc类型的前提下,只发送接收系统真正需要的数据。文章详细解析了主数据变更链路的完整流程,包括变更文档、变更指针和IDoc生成机制,并重点说明了如何在BD53事务中创建精简消息类型、选择保留字段、激活变更指针等实操步骤。此外,还介绍了通过BD59过滤对象和BD64分发模型实现更精确的数据分发,以及变更指针的激活验证、IDoc生成作业和定期清理等运维要

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 135

PCL点云DBSCAN聚类算法:基于密度的点云聚类

核心点是在给定半径内拥有足够多邻居点的点,边界点是在给定半径内没有足够多邻居点但是位于核心点的邻域内的点,噪声点是既不是核心点也不是边界点的点。本文将介绍PCL中的DBSCAN(基于密度的空间聚类应用噪声)算法,用于点云数据的聚类。上述示例代码首先从PCD文件中读取点云数据,并设置了DBSCAN聚类的参数,包括邻域搜索半径(epsilon)和邻域内最小点数(min_points)。需要注意的是,示例代码中的点云数据格式为pcl::PointXYZ,如果使用其他类型的点云数据,需要相应地修改代码。

LpmShell的博客 1242

《树莓派开始,玩转Linux》Linux部分学习记录(一)Linux和文件介绍

前言 关于Linux操作系统的书籍浩如烟海,但多数对于入门者来说过于晦涩难懂。在学习树莓派的过程中,我参考了《树莓派开始,玩转Linux》这本书。发现其中关于Linux的入门介绍还是比较亲民一些的,于是以此作为重新入门,摘录一些这要的知识点以便加深记忆以及便于后续查阅和查漏补缺。 第14章 Linux的真身 一、什么是内核? Linux系统有狭义和广义上两种定义。狭义来说,Linux实际上指Li...

lvturancao的博客 596

Unity零基础到入门 ☀️| 轻松学会 Unity界面布局和简单实例——入门级!(^_−)☆

入门级Unity知识,一起加油呀!

努力前行,总会成为自己心中的那道光 1万+

Linux下文件搜索、查找、查看命令

Linux下文件搜索、查找、查看命令 1、最强大的搜索命令:find 一、根据 文件或目录名称 搜索 二、根据 文件大小 搜索 三、根据 所有者和所属组 搜索 四、根据 时间属性 搜索 五、根据 文件类型或i节点 搜索 六、组合条件 搜索   2、在文件资料中查找文件:locate   3、搜索命令所在的目录及别名信息:which  4、搜索命令所在的目录及帮助文档路径:whereis 5、在文件...

黄小小的博客 36万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux常用命令之文件搜索命令

目录 1、最强大的搜索命令:find 一、根据 文件或目录名称 搜索 二、根据 文件大小 搜索 三、根据 所有者和所属组 搜索 四、根据 时间属性 搜索 五、根据 文件类型或i节点 搜索 六、组合条件 搜索   2、在文件资料库中查找文件命令:locate   3、搜索命令所在的目录及别名信息:which  4、搜索命令所在的目录及帮助文档路径:whereis 5、在文件中搜......

weixin_36670529的博客 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

linux中的文件搜索命令

一、locate命令 是在后台数据库中按文件名搜索(也只能按文件名搜索),搜索速度较快 这个数据库的目录,不同的linux发行版不同,在centos6.10中,这个数据库的目录为:/var/lib/mlocate/mlocate.db 这个数据库默认一天一更新,所以一般新建的文件,如果不手动更新该数据库,在该天内是无法使用locate命令来查看文件位置的,更新该数据库的命令为:updated...

qq_40420795的博客 6万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux文件搜索命令

【代码】Linux文件搜索命令。

I‘m程序媛的博客 1524

Linux 命令行搜索文件

Linux 管理员一天都不能离开搜索文件,因为这是他们的日常活动。了解一些搜索的东西是不错的,因为这能帮助你在命令行服务器中工作。这些命令记忆起来不复杂,因为它们使用的是标准语法。 可以通过四个 Linux 命令啦执行此操作,每个命令都有自己独特的功能。 方法 1:使用 find 命令在 Linux 中搜索文件和文件夹 find 命令被广泛使用,并且是在 Linux 中搜索文件和文件夹的著名命令。它搜索当前目录中的给定文件,并根据搜索条件递归遍历其子目录。 它允许用户根据大小、名称、所有者、组、类型、权限、

weixin_42277719的博客 2992

linux view 搜索,对 Linux 下文件搜索命令进行一个科普

在系统里查找文件,是所有工程师都必备的技能(不管你用的是 Windows 、Linux、还是 MacOS 系统)。对于 Linux 操作系统,单单一个 find 命令就可以完成非常多的搜索工作。但是,文件搜索命令远不止一个 find 命令,还有很多。本文就对 Linux 下文件搜索命令进行一个科普,让你能够在短时间内找到自己需要的文件。1. findfind 命令应该是最经典的命令了,谈到搜索工具...

weixin_29095049的博客 1427

Linux文件搜索命令扩展

Linux常用命令-3.2其他文件搜索命令 本节主要介绍除了 find 之外的权限管理命令,如需了解 find,请查看上一节 1. locate 功能描述:在文件资料库中查找文件 执行权限:所有用户 命令所在路径:/usr/bin/locate 选项: -i 不区分大小写 操作: updatedb 更新资料库 /tmp 不在其收录范围 用法: locate [文件名称] ...

美好事物 2237

Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解

本文介绍了几种文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而locate是在文件资料库中进行搜索,对比find命令搜索速度快很多,但是新创建的文件如果没有收录到文件资料库中,使用locate命令是搜索不到的,再就是/tmp目录是不收录到文件资料库的,也就是说使用locate命令搜索不到在/tmp目录下的文件。

我是飞飞啊,不一定温柔,但一定自由 1211

进来看看有没有你不知道的的linux文件搜索命令

掌握强大的文件搜索命令,无疑可以极大提高我们在处理各种问题时的效率和准确性。

qq_58824041的博客 1394

linux文件搜索查找命令

linux文件搜索查找命令1、grep功能描述grep 命令在一个或多个文件中查找与指定模式匹配的字符串。如果模式里包含有空格,必须用引号括起来。grep的模式只能是一个被引号括起来的字符串或者是一个单词,后面紧跟着的参数都被当作文件名。grep命令把结果输出到标准输出上,并不改变被搜索的源文件。命令格式grep pattern filename filename2 ...grep

plusboy的专栏 1万+

每天一个 Linux 知识:在文件系统中搜索文件 find 命令

find其中,是find命令的起点,若未明确指定,默认以当前工作目录()及子目录作为搜索范围;用于筛选符合需求的文件,支持文件名、大小、时间、权限等数十种匹配规则;则定义对搜索结果的处理方式,如显示路径、删除文件、批量修改权限等(默认动作为-print,即输出文件路径)。从工作原理来看,find命令采用“深度优先遍历”策略:从指定路径出发,递归遍历所有子目录,逐个检查每个文件是否满足预设条件,一旦匹配便执行对应操作。这种遍历方式确保不会遗漏任何子目录中的文件,但也需注意:若搜索路径包含大量文件(如。

网络技术联盟站 950

linux命令详解,搜索文件类

泷羽sec课程笔记,星河飞雪计划 这条命令会在家目录及其子目录中查找以flag开头的文件,且忽略大小写。这条命令会在家目录及其子目录中查找大于 100MB 的文件。这条命令会在家目录及其子目录中查找以flag开头的文件。这条命令会在家目录及其子目录中查找路径中包含。这条命令会在当前目录及其子目录中查找所有的目录。

2202_75361164的博客 1262
上一篇: 运维工程师必知的默认端口号大全 建议收藏
下一篇: Linux命令(十二):Linux进程管理命令
Java_2017_csdn
博客等级 码龄10年 329粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值