我正在尝试解析默认路由的默认IP地址。
我已经有了默认路由,我正在尝试从中提取IP地址。
/sbin/ip addr show dev eth0 | grep 'inet'
获取IP到IP地址所在的正确行:
inet 10.1.4.33/22 brd 10.1.83.255 scope global eth0
我需要帮助提取IP地址部分10.1.4.33
答案 0 :(得分:4)
将输出传输到grep -o
:
/sbin/ip addr show dev eth0 | grep 'inet' | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -n 1
head -n 1
只需选择第一场比赛。
答案 1 :(得分:2)
您可以使用此awk
:
/sbin/ip addr show dev eth0 | awk -F '[ /\t]+' '$2=="inet"{print $3; exit}'
192.168.0.52
答案 2 :(得分:1)
在awk中再尝试一种方法。
/sbin/ip addr show dev eth0 | awk '{match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/);if(substr($0,RSTART,RLENGTH) && $0 ~ /inet/){print substr($0,RSTART,RLENGTH)}}'
答案 3 :(得分:0)
使用sed:
完成可用选项ip add show dev eth0 | sed -rn 's@^.*inet[[:blank:]]([[:digit:]]{1,3}(.[[:digit:]]{1,3}){3})/.*$@\1@p'
答案 4 :(得分:0)
不需要复杂的正则表达式。
<style>
body {
margin: 0;
padding: 0;
text-align: center; !!!
}
.centered {
margin: 0 auto;
display:block;
text-align: left;
width: 800px;
}
</style>