分享好友 生活信息首页 生活信息分类 切换频道
linux grep查找多个文件的关键字 grep查询多个文件
2024-12-26 09:39


1. 前言

有时间我们需要查找文件,并不是根据文件名查找文件,而是查看每个文件里的内容是否包括某些关键字,然后把带有特定关键字内容的文件找出来。本文列举出常用的使用命令和案例,希望能给读者一些帮助。

2. Linux根据关键字查找文件内容的实用案例


Linux根据关键字查找文件内容的实用案例

在linux下如果要查找包含某个关键字的文件,如要在/root/目录下搜索带有关键字“zcwyou”的文件,在终端下运行命令:

在/root/目录下查找带有test关键字的文件

查找当前目录及其子目录下所有php文件中包含某关键字的文件,假设关键字为:keyword

在Linux的终端中,搜索当前目录和子目录中含有某关键字(假设关键字为zcwyou)的文件,命令如下:

查找目录/var/www/html/test/里,包含带关键字linuxrumen.com的文件并删除这些文件

查找当前目录下的所有文件中是否含有某个字符串,假设关键字为zcwyou


查找当前目录下的所有文件中是否含有某个字符串

查找当前目录下的所有文件中是否含有某个字符串(以关键字zcwyou为例),并且只打印出文件名

linux 查找某目录下包含关键字内容的文件

grep -r "{关键字}" {路径}


linux查找某目录下包含关键字内容的文件

例如:

在目录/zcwyou/test/里,找到带有关键字test文件

3. Linux使用重定向和过滤管道组合更精准查找文件内容


linux使用重定向和过滤管道组合更精准查找文件内容

对find,xargs,grep和管道的一些深入理解

相信大家都知道在目录中搜索含有固定字符串文件的命令:

利用find命令查找当前目录下,后缀名为py的文件,在这些文件里,查找带有关键字test的内容

如果我们把xargs删除,比如执行以下命令:

结果并不是自己所期望的。此命令只是找出文件名*.py有关键字test的情况,为何?

这里就需要大家熟悉xargs的工具,下面我们科普一下shell编程里的基础知识

3.1 参数与标准输入

这两个词我们在Linux命令中是很常见的。但是参数和标准输入其实是有区别的。我们日常使用的很多命令,例如ls -lah .中。l, a, h ,都是命令ls的参数。至于标准输入,可以说它某种流数据。而通常来讲标准输入的流数据来源就是我们的终端输入。在Linux命令中,有些命令可以接收标准输入,有些是不能的。像上面的ls,就是只能接收参数,不能接收标准输入。像cat命令或echo命令,这些是可以的。

怎么分辨一个命令可不可以接收标准输入?很简单,当你敲完命令回车后,终端会等待接收你的输入,例如当你在终端输入cat后,终端会等待你输入字符,当你输入一些字符后,然后按Ctrl-C发送终止符号。这时cat命令接收标准输入完毕,执行命令,也就是将刚才键入的内容输出的标准输出上(屏幕)。

3.2 管道

管道的作用是将前面命令的标准输出作为后面命令的标准输入。这里要注意,后面的命令接收的是标准输入,所以如果命令不支持接收标准输入,那么就不能直接使用管道,例如常用的ls命令,只能使用参数,而不能使用标准输入,所以[command] | ls是不能使用的。而命令如echo或cat就可以。那么肯定有方法来实现这些不能使用标准输入的命令与管道结合,这时候xargs便出场了。

3.3 xargs命令

xargs命令通俗来讲就是将标准输入转成各种格式化的参数,所以命令[command 1] | xargs [command 2]就是将command 1的标准输出结果,通过管道|变成xargs的标准输入,然后xargs再将此标准输入变成参数,传给[command 2]。这样一来,通过xargs命令,我们便可以在管道后面使用那些不接收标准输入的命令了。例如[command 1]|xargs ls,是不是很熟悉?

3.4 find与grep配合查找带有特定关键字文件内容

我们首先来查看grep手册。通过man grep命令。

grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN. By default, grep prints the matching lines

那么对于第一个命令find . -name '*.py' |grep test,是将前面命令的标准输出作为标准输入传给了grep test,那么grep是从这些标准输入寻找test字符,也就是文件名组成的字符流, 最终选择出的是这些文件名。

对于第二个命令find . -name '*.py' |xargs grep test,通过xargs,find得到的文件名成为了参数传给后面的grep,那么这时候这些文件名就是实实在在的文件标识,grep接收后会按正常的使用方式在各文件中搜寻字符串。

3.5 grep 参数

-a 不要忽略二进制数据。

-A 除了显示符合范本样式的那一行之外,并显示该行之后的内容。

-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。

-c 计算符合范本样式的列数。

-C或- 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。

-d 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。

-e 指定字符串作为查找文件内容的范本样式。

-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。

-f 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。

-F 将范本样式视为固定字符串的列表。

-G 将范本样式视为普通的表示法来使用。

-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。

-H 在显示符合范本样式的那一列之前,标示该列的文件名称。

-i 忽略字符大小写的差别。

-l 列出文件内容符合指定的范本样式的文件名称。

-L 列出文件内容不符合指定的范本样式的文件名称。

-n 在显示符合范本样式的那一列之前,标示出该列的编号。

-q 不显示任何信息。

-R/-r 此参数的效果和指定“-d recurse”参数相同。

-s 不显示错误信息。

-v 反转查找。

-w 只显示全字符合的列。

-x 只显示全列符合的列。

-y 此参数效果跟“-i”相同。

-o 只输出文件中匹配到的部分。

4. 总结

    以上就是本篇文章【linux grep查找多个文件的关键字 grep查询多个文件】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/tjnews/2240.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
学科教学历史考研院校有哪些
对于计划参加学科教学历史考研的研究生来说,选择合适的院校是至关重要的。以下是一些知名的院校,它们在学科教学历史领域中享有
百度停PC浏览器服务 国研政情·经济信息智库:挽不回市场
百度停PC浏览器服务 国研政情·经济信息智库:挽不回市场(赵晨 驱动中国)新闻中国采编网 中国新闻采编网 谋定研究·中国智库网
更多安狗狗清理大师安卓历史版本(6个)
安狗狗清理大师,完全免费的手机空间清理、手机加速的软件。 1:应用信息清理大师,一款专注安卓用户的专业手机清理软件。体积小
六款超级神器!Markdown编辑器、Windows系统安装和禁止自动更新、图片批量修改公交、安全移除USB设备和微信输入法。
大家好,我是北山!本期分享几款免费优质的工具神器,Markdown编辑器、Windows系统安装工具、图片批量修改神器、禁止Windows自动
孝感爱采购标题撰写
百度爱采购也有付费会员和免费会员两类,一般来说付费的优先展示。但这不是全部因素,百度爱采购还会从大数据、用户浏览数据、页
日照网站建设排名优化,打造高效、用户友好的网站,提升搜索引擎排名,日照网站建设哪家好
日照网站建设优化,旨在打造高效、用户友好的网站,提升搜索引擎排名。选择一家好的网站建设公司至关重要,如日照市领先的网络科
漫蛙App官网入口及使用指南:全方位探索动漫世界的必备工具
随着数字化时代的到来,动漫已经成为了全球文化中的重要一部分,而随着动漫爱好者需求的增加,各种相关的应用程序也应运而生。漫
湖北亿纬动力取得一种测试用夹持装置专利,能保证垂直测量的角度,提高垂直测量的可靠性
金融界2024年12月11日消息,国家知识产权局信息显示,湖北亿纬动力有限公司取得一项名为“一种测试用夹持装置”的专利,授权公告
明天有小雪,气温下降,雪后风大!
市气象台12月11日14时发布:今天下午晴间多云,北转南风二三级,最高气温6℃;夜间晴转多云,南转北风一二级,最低气温零下3℃。
天正三亚湾壹号-售楼中心丨楼盘解析丨户型、价格丨最新优惠
跨山越海丨在三亚湾奔赴心之所向☎售楼处热线:0898-66599661【售楼中心】☎专属金牌置业顾问:13379996468【微信同步】★★售楼