Grep 查找以 X 开头且包含精确单词的行匹配(精确单词用连字符连接)

Grep 查找以 X 开头且包含精确单词的行匹配(精确单词用连字符连接)

我的输入如下所示。


name 12.3.14.132 root-servers_net-ipv4
name 19.17.191.123 root-servers_net-ipv4-1
name 192.223.210.110 root-servers_net-ipv4-2
name 172.7.1.31 root-servers_net-ipv4-3
name 1.12.6.14 root-servers_net-ipv4-4

我试图仅返回以下输出。


name 12.3.14.132 root-servers_net-ipv4

grep '^name.* ' test_asa_policy |grep -w "root-servers_net-ipv4"

看来 -w 无法识别连字符的单词。

我尝试了以下但没有返回任何结果

grep -P '(^|\s)\Kroot-servers_net-ipv4(?=\s|$)' test_asa_policy

答案1

只需使用正则表达式“字符串的末尾“ 锚$

grep '^name.*root-servers_net-ipv4$' test_asa_policy

输出:

name 12.3.14.132 root-servers_net-ipv4

相关内容