Linux

當參數中有 IP 地址時 grep 到 IP 地址

  • February 7, 2013

我需要 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)中獲取 IP 地址?

  • 備註 - IP 地址可以是任何 IP

在這種情況下如何添加反斜杠

IP_ADDRESS=192.2.34.2 或 IP_ADDRESS=192.2.34.20 …等

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

如果您使用的是 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'`

引用自:https://serverfault.com/questions/476394