如何在Linux的子文件夹中grep特定的*name*?
要grep所有子文件夹中的某些字符串,我可以使用:如何在Linux的子文件夹中grep特定的*name*?,linux,grep,find,Linux,Grep,Find,要grep所有子文件夹中的某些字符串,我可以使用: grep -rl "test" /path 我想grep一些特定的字符串,假设字符串的第一部分和第二部分可能不同(有不同的开始和结束),并且不区分大小写。 我尝试过这样做,但没有成功: grep -rli "*test*" /path 你能告诉我怎么做吗 为了清楚起见,我想查找所有文件(grep),包括子文件夹,其中有特定字符串,例如: "*test*" 您可以使用“--include”选项进行如下尝试: grep -rli --incl
grep -rl "test" /path
我想grep一些特定的字符串,假设字符串的第一部分和第二部分可能不同(有不同的开始和结束),并且不区分大小写。
我尝试过这样做,但没有成功:
grep -rli "*test*" /path
你能告诉我怎么做吗
为了清楚起见,我想查找所有文件(grep),包括子文件夹,其中有特定字符串,例如:
"*test*"
您可以使用
“--include”
选项进行如下尝试:
grep -rli --include="test*" /path
从grep的手册页
--include=GLOB
仅搜索基名称与GLOB匹配的文件(使用通配符
如--exclude)中所述进行匹配
也将搜索子字符串。grep搜索模式-您不需要这些星号(或我的预编辑答案中的点星号)
如果要搜索确切的单词而不是子字符串中的单词,请使用-w选项。您应该尝试grep accepting:
*
表示匹配(零次或多次)除换行符以外的任何字符。更多关于元字符的信息
您几乎可以使用任何正则表达式,因此它是一个非常灵活的解决方案来匹配复杂的模式。例如,如果只搜索整个单词:
grep -rlP "\b(test)\b" /path
当然也有局限性。例如,使用此方法进行多行搜索可能会很困难
grep -irlP ".*test.*" /path
grep -rlP "\b(test)\b" /path