我需要 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'`