grep 搜索目录中的文件

如何使用递归 Grep 命令在目录中搜索? 递归grep命令是在目录及其子目录中搜索指定文本的强大工具。通过灵活运用命令选项,您可以根据需要定制搜索行为,如忽略文件类型、区分大小写、显示上下文等。希望本文对您理解如何使用递归grep命令进行目录搜索提供了详细的指导。通过熟练掌握递归grep命令,您可以轻松查找和定位目标文件中的文本内容。 阅读详情

1.在某目录下的所有文件中搜索确定的关键词

[plain]  view plain copy
  1. grep -Fnr class ./   
以上命令的意思是:在当前目录下的所有文件中搜索“class”,并显示文件名、行号和匹配所在行内容

2.在某目录下的所有文件中,按使用正则搜索

[plain]  view plain copy
  1. grep -Pnr "\d{3}" ./   

-P 是 Perl 正则表达式,经过测试,发现此模式支持的正则最完整,支持正则的完整度由大到小为: -P > -E > -G

建议正则搜索时就直接使用-P模式,以避免去记忆-E和-G模式不支持的正则列表


3.只搜索某一类文件

[plain]  view plain copy
  1. grep -Pnr "\d{3}" `find -name "*.txt"`  

4.只搜索某几类文件,如下,只搜索txt和php文件

[plain]  view plain copy
  1. grep -Pnr "\d{3}" `find |grep -P ".(txt|php)$"`  

5.排除含某关键词的子目录不搜索。如下,含“weiba”关键词的子目录不搜索

[plain]  view plain copy
  1. grep -Pnr "\d{3}" `ls |grep -Fv weiba`  
-v排除匹配项

6.更强功能的子目录筛选

[plain]  view plain copy
  1. grep -Pnr "\d{3}" `ls |grep -Pv '^(weiba|huati)$'`  
  2.   
  3. grep -Pnr "\d{3}" `ls |grep -P '^(weiba|huati)$'`  



附:greg 使用帮助


用法: grep [选项]... PATTERN [FILE]...

在每个 FILE 或是标准输入中查找 PATTERN。
默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
例如: grep -i 'hello world' menu.h main.c


正则表达式选择与解释:
  -E, --extended-regexp     PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
  -F, --fixed-strings       PATTERN 是一组由断行符分隔的定长字符串。
  -G, --basic-regexp        PATTERN 是一个基本正则表达式(缩写为 BRE)
  -P, --perl-regexp         PATTERN 是一个 Perl 正则表达式
  -e, --regexp=PATTERN      用 PATTERN 来进行匹配操作
  -f, --file=FILE           从 FILE 中取得 PATTERN
  -i, --ignore-case         忽略大小写
  -w, --word-regexp         强制 PATTERN 仅完全匹配字词
  -x, --line-regexp         强制 PATTERN 仅完全匹配一行
  -z, --null-data           一个 0 字节的数据行,但不是空行


杂项:
  -s, --no-messages         不显示错误信息
  -v, --invert-match        选中不匹配的行
  -V, --version             显示版本信息并退出
      --help                显示此帮助并退出
      --mmap                忽略向后兼容性


输出控制:
  -m, --max-count=NUM       NUM 次匹配后停止
  -b, --byte-offset         输出行的同时打印字节偏移
  -n, --line-number         输出行的同时打印行号
      --line-buffered       每行输出清空
  -H, --with-filename       为每一匹配项打印文件名
  -h, --no-filename         输出时不显示文件名前缀
      --label=LABEL         标准输入将LABEL 打印为文件名
  -o, --only-matching       只显示一行中匹配PATTERN 的部分
  -q, --quiet, --silent     不显示所有输出
      --binary-files=TYPE   假定二进制文件的TYPE 类型;
                            TYPE 可以是`binary', `text', 或`without-match'
  -a, --text                等同于 --binary-files=text
  -I                        等同于 --binary-files=without-match
  -d, --directories=ACTION  操作目录的方式;
                            ACTION 可以是`read', `recurse',或`skip'
  -D, --devices=ACTION      操作设备、先入先出队列、套接字的方式;
                            ACTION 可以是`read'或`skip'
  -R, -r, --recursive       等同于 --directories=recurse
      --include=FILE_PATTERN  只查找匹配FILE_PATTERN 的文件
      --exclude=FILE_PATTERN  跳过匹配FILE_PATTERN 的文件和目录
      --exclude-from=FILE   跳过所有除FILE 以外的文件
      --exclude-dir=PATTERN  跳过所有匹配PATTERN 的目录。
  -L, --files-without-match  只打印不匹配FILEs 的文件名
  -l, --files-with-matches  只打印匹配FILES 的文件名
  -c, --count               只打印每个FILE 中的匹配行数目
  -T, --initial-tab         行首tabs 分隔(如有必要)
  -Z, --null                在FILE 文件最后打印空字符


文件控制:
  -B, --before-context=NUM  打印以文本起始的NUM 行
  -A, --after-context=NUM   打印以文本结尾的NUM 行
  -C, --context=NUM         打印输出文本NUM 行
  -NUM                      等同于 --context=NUM
      --color[=WHEN],
      --colour[=WHEN]       使用标志高亮匹配字串;
                            WHEN 可以是`always', `never'或`auto'
  -U, --binary              不要清除行尾的CR 字符(MSDOS 模式)
  -u, --unix-byte-offsets   当CR 字符不存在,报告字节偏移(MSDOS 模式)


‘egrep’即‘grep -E’。‘fgrep’即‘grep -F’。
直接使用‘egrep’或是‘fgrep’均已不可行了。
不带 FILE 参数,或是 FILE 为 -,将读取标准输入。如果少于两个 FILE 参数
就要默认使用 -h 参数。如果选中任意一行,那退出状态为 0,否则为 1;
如果有错误产生,且未指定 -q 参数,那退出状态为 2。
openEuler服务器离线安装实战:从Docker到Samba的完整避坑指南 本文提供了一份详尽的openEuler服务器离线部署实战指南,重点解决了在无网络环境下安装Docker、Samba等软件的依赖难题。文章深入对比了`dnf install`、`rpm`直接安装及禁用仓库安装三种核心方法,并分享了构建本地DNF仓库的进阶策略,旨在帮助运维人员构建高效可靠的离线部署工作流。 阅读详情

相关推荐

A-Level经济例题解析及练习Opportunity Cost

例题Question: Opportunity CostYou are selling your 1996 Mustang.  You have already spent $1000 on repairs. At the last minute, the transmission dies.  You can pay $600 to have it repaired, or sell the car “as is.”In each of the fol

Alevel3的博客 744

#Linux杂记# grep 查找命令常用选项大全(一)

例子1: grep "Test start" -r * // 当前目录下的所有文件及其子目录。例子2: grep "Test start" -i test/filename // 当前目录下的某个目录的文件。例子2: grep "Test start" -n test/filename // 当前目录下的某个目录的文件。例子3: grep "Test start" -i * // 当前目录下的所有文件。注意,是匹配到的总行数,不是匹配到的次数。

那么菜的博客 6982

STM32F407VET6与CH395Q串口通信实战:从零搭建以太网客户端(附完整代码)

本文详细介绍了基于STM32F407VET6微控制器与南京沁恒微CH395Q以太网芯片,通过串口通信从零搭建TCP客户端应用的完整实战过程。内容涵盖硬件连接、驱动层设计、基于FreeRTOS的任务实现以及核心调试技巧,并提供了完整的代码示例,帮助嵌入式开发者快速实现设备联网功能。

weixin_29179311的博客 413

grep查找路径下所有文件内容

一、需求描述       /etc目录包含了多个目录及脚本文件,现在需要确定/etc路径下的文件中,哪些文件包含了“logread”字符串。       在使用linux时,我们一般用find命令来进行文件查找。但find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。无法查找文件内容 ,满足不了上述需求。       此时,我们可以考虑用g

u013485792的专栏 5万+

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

曾用名:极客柒 1851

Unreal5从入门到精通之Landscape地形系统

虚幻引擎 5 (UE5) 能够利用其强大的地形编辑工具套件创建大规模的地形世界。使用地形工具可以创建身临其境的户外地形,这些地形经过优化,可在多种不同设备上保持可播放的帧速率。

TxNet 4141

grep文件夹下所有文件

grep文件夹下所有文件

GKFreewind的博客 1938

016、自动标注方案实战:用大模型(SAM/Grounding DINO)生成 YOLO 格式伪标签

本文介绍了一种利用大模型自动生成YOLO格式伪标签的实战方案。针对传统人工标注效率低、易出错的问题,作者提出结合Grounding DINO(零样本检测)和SAM(精细分割)的优势:前者快速生成候选框,后者优化边界精度。文章详细阐述了技术选型理由(平衡速度与精度)、环境搭建避坑指南(关键依赖版本)、核心三步流程(检测-分割-格式转换)以及后处理技巧(置信度分级过滤)。实验表明,该方案相比纯人工标注可节省80%时间,且经过SAM优化的边界框精度提升10-15%。特别强调了工程细节:文本描述格式、阈值设定、小目

zzfmlxs的博客 542

Linux grep命令

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

TCP/IP协议栈学习ing 3527

【Python计量】linearmodels面板数据回归(一)

我们以伍德里奇《计量经济学导论现代方法》的”第14章高级面板数据方法“的案例14.1为例,使用jtrain中的数据来进行固定效应估计。

mfsdmlove的博客 9275

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

k8291121的博客 1011

linux grep子目录,linux grep搜索文件中的字符串

从文件中查找关键词grep 'linux' text.txt //查找包含 linux的关键词[root@localhost ~]# grep 'root' /etc/grouproot:x:0:rootbin:x:1:root,bin,daemon从多个文件中查找关键词[root@localhost ~]# grep 'root' /etc/group /etc/my.cnf/etc/group...

weixin_39610721的博客 356

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

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

使用grep搜索文件内容

使用grep搜索文件内容——快捷、方便 (1) 在当前目录下的所有文件的文件内容中查找哪个文件的内容中有findcontents(大小写不敏感,列出findcontents所在文件的所在行)——适合于当前目录下的文件及目录数目比较少,如果查找后列出内容过多,将会失去查找意义。 grep -rin findcontents * (2) 如果查找后列出内容过多,就需要用如下命令(只列出f

成长的味道 880

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

grep搜索子目录中包含某字符串的特定文件

grep -n "str" -r ./ 这是查找当前目录下以及下辖子目录下所有包含str字符串的文件,会列出文件名.以及该行的内容.以及行号    --------------------------------------------------------------------------------------------------------------------------

JoeBlackZQQ的专栏 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何在 Linux 中 grep 搜索文件名而不是内容

grep是一个Linux工具,通常用于在文本文件中搜索特定内容。但是,在目录中搜索文件名而不是文件内容通常很有用,这可以通过grep其他Linux命令行实用程序来完成。

学海无涯苦作舟的博客 3069

grep语法 linux 子目录,grep搜索子目录中包含某字符串的特定文件

比如,我想搜源码目录src下,包含“niuc”的所有ec文件find ./src -name '*.ec' -exec grep -i niuc {} /; -print在特定文件中grep某关键字,除了使用find 命令加exec选项之外,其实还有更简单的方法:grep -R --include="*.cpp" key dir上述命令的含义:在dir目录下递归查找所有.cpp文件中的关键字key...

weixin_32262035的博客 2863

linux grep搜索文件中的字符串

从文件中查找关键词 grep 'linux' text.txt //查找包含 linux的关键词 [root@localhost ~]# grep 'root' /etc/group root:x:0:root bin:x:1:root,bin,daemon 从多个文件中查找关键词 [root@localhost ~]# grep 'root' /etc/group /etc/my

joden002的专栏 373

使用grep搜索目录树中文件的指定内容

在类unix系统中有一个在文件中搜索匹配的模式的命令grep。这个命令在搜索指定文件中的特定内容时十分有用,特别是在众多的源代码文件树中搜索对指定字符串的引用。

cdzwm的专栏 1601

grep搜索多行字符串

例如查找edk2下面的protocol的实现代码。找到了protocol,但是不清楚具体的实现在哪个文件中。可以通过搜索protocol的参数,来找到实现。2. 将给定文件内的字符串,一个或多个连续的空格或制表符用"\s+“代替,换行符用”\n代替",特殊字符添加转义字符""用这种方式的话,会打印整个包含所需字符串的文件内容出来。使用grep命令,搜索一个目录(包含子目录)下面的多行字符串。3. 在生成的转义字符前后添加grep命令与搜索的文件路径。搜索关键字"@file"可以找到包含对应字符串的文件。

weixin_41896004的博客 1180

grep命令在指定目录中的指定文件类型中查找关键字

grep -R --include=“file_type” context dir 上述命令的含义: 在dir目录下递归查找所有file_type文件中的关键字key

放牧羊犬的羊咩咩专栏 2760

grep 命令查找文件中的文本字符串

grep 命令用于搜索由 Pattern 参数指定的模式,并将每个匹配的行写入标准输出中。这些模式是具有限定的正则表达式,它们使用 ed 或 egrep 命令样式。grep 命令使用压缩的不确定算法。 如果在 File 参数中指定了多个名称,grep 命令将显示包含匹配行的文件的名称。对 shell 有特殊含义的字符 ($, *, [, |, ^, (, ), \ ) 出现在 Pattern ...

奋斗一生 937
上一篇: 为什么在中断过程中不能进行睡眠
下一篇: gpio_request
计算机与认知
博客等级 码龄14年 31粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值