仅当子字符串不是字符串的一部分时才获取匹配项

时间:2011-07-01 19:34:06

标签: bash grep pattern-matching string-matching

您好我实际上正在寻找一个字符串,它是另一个字符串的子字符串。所以我使用grep来获取这个字符串的匹配,但是其他字符串的匹配也会出现。

grep -nr 'XML' .

当我这样做时,字符串“LIBXMLX”的匹配也即将出现。有没有办法只获得XML的匹配而没有LIBXMLX?

我是shell脚本的新手,所以我该如何处理呢?

3 个答案:

答案 0 :(得分:3)

来自手册

  

符号 \ <&lt; \&gt; 分别匹配单词开头和结尾的空字符串。

所以,

grep -nr '\<XML\>' .

答案 1 :(得分:0)

使用-w开关(完全匹配字词)。

答案 2 :(得分:0)

这是kludgey,我知道,但你可以使用'XML'作为搜索字符串,从而消除任何在X之前没有空格的东西。只是一个想法。我与grep的互动很简单。