当参数中有 IP 地址时,使用 grep 来查找 IP 地址

当参数中有 IP 地址时,使用 grep 来查找 IP 地址

我需要 grep 到 IP 地址(如下例所示),我使用 ksh 脚本,

    #  ifconfig -a |  /usr/xpg4/bin/grep   "100\.106\.2\.120 "
    inet 100.106.2.120 netmask ffffff00 broadcast 100.106.2.255

但是如何从参数(IP_ADDRESS)中 grep IP 地址?

  • 备注 - IP 地址可以是任何 IP

在这种情况下如何添加反斜杠

IP_ADDRESS=192.2.34.2,或 IP_ADDRESS=192.2.34.20 ... 等等

    #  ifconfig -a |  /usr/xpg4/bin/grep   "$IP_ADDRESS "

答案1

如果你使用 bash shell,你可以使用参数扩展:

ifconfig -a | /usr/xpg4/bin/grep "${IP_ADDRESS//./\\.}"

如果你的 shell 不支持这种类型的参数扩展,你可以使用 shell 扩展,例如使用 sed:

ifconfig -a | /usr/xpg4/bin/grep `echo $IP_ADDRESS | sed 's/\./\\./g'`

或 perl:

ifconfig -a | /usr/xpg4/bin/grep `echo $IP_ADDRESS | perl -pne 's/\./\\./g'`

相关内容