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

関連情報