软件下载

linux grep查找关键字(linux查找含有指定关键字的文件方法)

软件下载 投稿 2022-08-23 16:57:51 浏览

1. 前言

本文主要讲解如何在Linux系统下查找包含指定字符串的文件和搜索相关关键字。

linux查找包含字符串的文件

2. linux 查找包含字符串的文件相关实用案例

使用find命令查找文件,并把查找结果重定向至grep程序,由grep程序在每个文件内容里查找是否包含xxx字符串

[root@zcwyou ~]# find / -name "*" | xargs grep "xxxx"

或者直接使用grep,指定要查找的字符串内容

[root@zcwyou ~]# grep "这里输入要匹配的字符串" ./ -Rn -l

关于命令后面的参数,本文后面会提及。

linux 查找包含字符串的文件相关实用案例

如果要查找出包含2个字符串的文件的文件名:

命令格式如下:

grep "目标字符串1" ./ -Rn | grep "目标字符串2" ./ -Rn -l

即在当前目录下,使用一个命令查找带目标字符串1的文件或带目标字符串2的文件。

linux系统中,如果你想在当前目录下查找所有包含"www.linuxrumen.com"字符串的文件,可以这样输入命令:

[root@zcwyou ~]# grep -rn "www.linuxrumen.com" *

命令grep部分选项解释:

  • : 表示当前目录所有文件,也可以是某个文件名,可省略

-r 递归查找相关文件

-n 打印时带行号

-R 查找所有文件包含子目录

-i 忽略大小写,默认情况区分大小写

-l 只列出匹配的文件名

-L 列出不匹配的文件名

-w 只匹配整个单词,而不是字符串的一部分(如匹配 'magic',而不是 'magical')

-C number 匹配的上下文分别显示[number]行

还有一些使用案例分享给大家:

查找当前目录下包含了zcwyou字符或者包含了redhat字符的文件,命令如下:

[root@zcwyou ~]# grep "zcwyou" | "redhat" *

查找当前目录下既包含字符串1又包含字符串2的文件

执行如下命令

grep "字符串1" | grep "字符串2" *

当然还可以通过find和xargs结合grep查找文件列表,例如:

[root@zcwyou ~]# find -type f -name '*.java'|xargs grep 'http'

如果你想在当前目录下 查找"hello,world!"字符串,可以使用以下命令:

[root@zcwyou ~]# grep -rn "hello,world!" *

grep的常用选项功能解释如下:

  • : 表示当前目录所有文件,也可以是某个文件名
  • -r 是递归查找
  • -n 是显示行号
  • -R 查找所有文件包含子目录
  • -i 忽略大小写
  • 下面是一些有意思的命令行参数:
  • grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
  • grep -l pattern files :只列出匹配的文件名,
  • grep -L pattern files :列出不匹配的文件名,
  • grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分别显示[number]行,

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:

< 和 > 分别标注单词的开始与结尾。

例如:

grep man 会匹配 ‘Batman’、‘manic’、‘man’等,

grep '\<man' 匹配‘manic’和‘man’,但不是‘Batman’,

grep '\' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

'^':指匹配的字符串在行首,

'$':指匹配的字符串在行尾,

xargs配合grep查找,使用find指令查找文件,后缀名为php,内容包含aaa,打印这些文件信息和相关内容

[root@zcwyou ~]# find -type f -name '*.php'|xargs grep 'aaa'

linux查找包含字符串的文件其实使用最多是三个命令的组合

3.总结

linux查找包含字符串的文件其实使用最多是三个命令的组合,find命令根据文件类型、文件名、文件大小、权限、文件时间等等条件查找文件,xargs用于参数传递,即把find执行结果交给下一个工具。grep用于查找、匹配、过滤文本文件或输出结果。这3个工具结合起来就可以高效地匹配到要查找的内容。

「真诚赞赏,手留余香」

求资源网

真诚赞赏,手留余香

使用微信扫描二维码完成支付

继续浏览有关编程的文章
发表评论
留言与评论(共有 0 条评论)
   
验证码:
版权声明

求资源网所发布的一切破解补丁,软件,以及其他分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。
否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。