繁体   English   中英

尝试从终端中的`ifconfig`捕获IP地址

[英]Trying to capture IP address from `ifconfig` in terminal

我正在尝试提出一个快速命令,以便通过grepifconfig命令获取计算机的IP地址。

到目前为止,我有这个ifconfig eth0 | grep -Eo 'inet addr:[0-9\\.]+' ifconfig eth0 | grep -Eo 'inet addr:[0-9\\.]+'将返回:

inet addr:192.168.1.26

我正在尝试调整正则表达式,以便仅获取IP地址本身。 我对正则表达式的了解非常有限,我在'inet addr:'周围放置了一个非捕获组,这使命令看起来像这样:

ifconfig eth0 | grep -Eo '(?:inet addr:)[0-9\\.]+'

但这仍然不能解决我的问题。

您可以使用:

ifconfig | awk '$1=="inet" && $2!="127.0.0.1"{print $2}'

或在Linux上:

ifconfig eth0 | awk -F '[ :]+' '$2=="inet" {print $4}'

您可以使用cut ,通过定界符将输出切为子字符串:

    ifconfig eth0 | grep -Eo 'inet addr:[0-9\.]+' | cut -d':' -f 2

标志-f 2用于选择第二个子字符串。

使用后向表达式; 使用grep ,您需要添加-P开关以启用此构造,而不是-E (至少在cygwin的bash v4.1.1下)。 因此,只需稍作更改即可:

ifconfig eth0 | grep -Po '(?<=inet addr:)[0-9\.]+'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM