Grep与"half" - 完全匹配

fwa*_*ter 1 bash grep sed

我尝试使用grep来匹配这样的情况:

我有这种格式的主机名和ips列表:

238-456 192.168.1.1
ak238-456 192.168.1.2
238-456a 192.168.1.3
458-862 192.168.1.4
Run Code Online (Sandbox Code Playgroud)

现在我尝试grep"238-456",但当然这会返回:

238-456 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

和...

ak238-456 192.168.1.2
Run Code Online (Sandbox Code Playgroud)

和...

238-456a 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

但我只需要238-456的线.在这种情况下,我不能使用-x因为当然它不会返回任何结果.

有没有简单的方法来解决这个问题?

用"^"给出的答案解决了第一个问题.但最后不是那个带有"a"的人.有人也可以帮忙吗?

kwa*_*ord 5

在此特定示例中,您可以搜索^238-456,仅在所需文本出现在行首时匹配.有关更一般的解决方案,请了解正则表达式(这是一个示例).

编辑:

对于您的新问题,您可以通过搜索手动包含空格"^238-456 ".空格也有一些正则表达式字符类."^238-456\>"应该在这里工作.该\>指示文字边界,并且你可能需要包含引号.另一个单词边界是\<,所以你可以改变整个事情"\<238-456\>",这将消除它在行的开头的依赖.