加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在unix中搜索特定文件中的文本

发布时间:2020-12-15 21:18:34 所属栏目:安全 来源:网络整理
导读:我正在使用Ubuntu机器并尝试使用以下命令来搜索文本: 此命令以递归方式检查给定目录中是否存在该单词: 1)这里你好是我搜索的单词,它在从当前目录开始的所有文件中递归搜索.它工作正常. grep -r“ hello” . 2)现在我想将搜索限制为仅限于特定文件,仅限于xm
我正在使用Ubuntu机器并尝试使用以下命令来搜索文本:

此命令以递归方式检查给定目录中是否存在该单词:

1)这里<你好>是我搜索的单词,它在从当前目录开始的所有文件中递归搜索.它工作正常.

grep -r“< hello>” .

2)现在我想将搜索限制为仅限于特定文件,仅限于xml文件:

grep --include=*.{java} -rnw '/home/myfolder/' -e "<hello>"

这次命令花费更多时间,最后没有给出任何结果.但我的文件有内容.

我已经通过这个链接 – How do I find all files containing specific text on Linux?用于编写我的第二个命令.

我的第二个命令有问题吗?还有一个执行速度快的备用命令吗?

解决方法

使用find可能更好,因为grep的include / exclude可能会让人感到有些困惑:

find -type f -name "*.xml" -exec grep -l 'hello' {} +

这将查找名称以.xml结尾的文件,并对它们执行grep’hello’.使用-l(L),我们使文件名打印,没有匹配的行.

说明

> find -type f它在给定的目录结构中查找文件.> -name“* .xml”选择名称以.xml结尾的文件.> -exec对find命令的每个结果执行一个命令.> -exec grep -l’hello'{}在给定文件上执行grep -l’hello’.使用{},我们引用匹配的名称(就像执行grep’hello’文件,但是引用find命令提供的文件的名称).此外,grep -l(L)返回文件名,而不是匹配本身.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读