[英]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.