匹配用grep确切的词(Match exact word using grep)

2019-09-23 11:23发布

我必须寻找一个确切的词并打印线的要求。 这是工作,如果我没有任何. (点)中的行。

$cat file
test1 ALL=ALL
w.test1 ALL=ALL

$grep -w test1 file
test1 ALL=ALL
w.test1 ALL=ALL

这是给第二行也,我想只能用确切的词线test1

Answer 1:

尝试这个:

grep -E "^test1" file

这说明,任何以单词TEST1作为第一行开始。 现在,如果你需要在线路的中间鳍这一点,但你在的werent这个非常具体的这不起作用。 至少在例子中的^会工作。



Answer 2:

为您的样品,您可以指定与该行的开头^和空间\s在正则表达式

grep "^test1\s" file

这取决于你可能需要匹配以及什么其他的分隔符。



Answer 3:

我知道我有点晚了,但我发现这个问题和回答的思想。 一个被定义为字符的序列,并且由空格分开。 所以我认为这会工作的grep -E“+测试1 | ^测试1”文件


此搜索其与TEST1或具有测试由至少一个前面的空白行开头的行。 对不起,我能找到一个更好的办法,如果有人可以请指正:)



Answer 4:

你可以采取以下为样本测试文件。

$cat /tmp/file
test1 ALL=ALL    
abc test1 ALL=ALL    
  test1 ALL=ALL    
w.test1 ALL=ALL    
testing w.test1 ALL=ALL

下面的正则表达式执行搜索开始Test1的字,并在线路也之间有一个字Test1的线。

$ grep -E '(^|\s+)test1\b' /tmp/file   
test1 ALL=ALL    
abc test1 ALL=ALL   
  test1 ALL=ALL


文章来源: Match exact word using grep
标签: linux shell