Grep
grep 的 IP 範圍?
在本地 IP 地址為 10.0.0.159 的 RHEL 7 機器上,以下命令列印出 IP
10.0.0.159
:$ echo "$(ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | \ grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')""(rw,sync)"
為了列印出“10.0.0.0/8”,命令必須更改為什麼?
注意:
ifconfig
是一個已棄用的 cmd。你應該使用 cmds。在 iproute2 包中。下面我展示瞭如何使用ip
替換工具來完成你想要的。
ifconfig
我建議不要這樣做,而是使用該ip
命令。IP CIDR
此表單以 CIDR 表示法顯示 IP 地址:
$ ip addr list eth0 | awk '/inet.*brd/ {print $2}' 10.0.2.15/24 -or- $ ip a l eth0 | awk '/inet.*brd/ {print $2}' 10.0.2.15/24
網路 CIDR
此表單以 CIDR 表示法顯示網路地址:
$ ip route show | awk '/eth0.*scope/ {print $1}' 10.0.2.0/24
ipcalc
您還可以使用
ipcalc
命令來操作上述地址以計算其他格式。例如:$ ipcalc -n $(ip a l eth0 | awk '/inet.*brd/ {print $2}') NETWORK=10.0.2.0 $ ipcalc -p $(ip a l eth0 | awk '/inet.*brd/ {print $2}') PREFIX=24
有了
ipcalc
它,您可以更簡單地形成您想要的任何變體,而不必做很多sed
&awk
來解析通常過於復雜的文本。