如何在unix中搜索特定文件中的文本
我正在使用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)返回文件名,而不是匹配本身. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |