如何grep的整个字
我正在使用下面的命令grep东西在subdirs
find . | xargs grep -s 's:text'  但是,这也发现像<s:textfield name="sdfsf"...../> 
 我能做些什么来避免这种情况,所以它只是find像<s:text name="sdfsdf"/> 
 或者对于这个问题….还发现<s:text somethingElse="lkjkj" name="lkkj" 
 基本上s:text和name应该在同一行…. 
 你想要-w选项来指定它是一个单词的结尾。 
 find . | xargs grep -sw 's:text' 
 您可以通过recursiongrepsearch来删除xargs命令。 而你通常不需要这个标志。 因此: 
 grep -wr 's:text' 
 使用\b匹配“单词界限”,这将使您的search只匹配整个单词。 
所以你的grep看起来像这样
 grep -r "\bSTRING\b" 
添加颜色和行号也可能有帮助
 grep --color -rn "\bSTRING\b" 
从http://www.regular-expressions.info/wordboundaries.html :
有三种不同的立场可以作为单词的边界:
- 在string中的第一个字符之前,如果第一个字符是单词字符。
- 在string中的最后一个字符之后,如果最后一个字符是一个单词字符。
- string中的两个字符之间,其中一个是单词字符,另一个不是单词字符。
如果你只是想过滤掉剩下的文本部分,你可以这样做。
 xargs grep -s 's:text ' 
 这应该只find最后一个t之后有空格的s:text实例。 如果您需要查找仅包含名称元素的s:text实例,请将您的结果传递给另一个grepexpression式,或者使用regex只过滤所需的元素。 
你可以试试rg, https : //github.com/BurntSushi/ripgrep :
 rg -w 's:text' . 
应该这样做