繁体   English   中英

使用grep匹配确切的单词

[英]Match exact word using grep

我需要搜索确切的单词并打印一行。 如果我没有的话,那是可行的. (点)。

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

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

它也给出了第二行,我只想要带有单词test1

尝试这个:

grep -E "^test1" file

这说明以单词test1作为第一行的任何内容。 现在,如果您需要在行的中间进行查找,这将不起作用,但是您对此并不十分明确。 至少在给出^的示例中有效。

对于您的示例,可以在正则表达式中用^指定行的开头,并用\\s指定空格\\s

grep "^test1\s" file

这取决于您还需要匹配哪些其他定界符。

我知道我有点晚了,但我发现这个问题和回答的思想。 单词定义为字符序列,并用空格分隔。 所以我认为这可以工作grep -E'+ test1 | ^ test1'文件


这将搜索以test1开头的行或以test开头至少一个空格的行。 对不起,如果有人可以纠正我,我可以找到更好的方法:)

您可以将以下作为示例测试文件。

$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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM