2017-06-14 51 views
0

这是标准的Linux ifconfig命令Linux发行多个IP地址(使用ifconfig)在1个输出

[email protected]:~$ ifconfig 
eth0  Link encap:Ethernet HWaddr 00:00:00:00:00:10 
      inet addr:192.168.1.1 Bcast:192.168.56.255 Mask:255.255.255.0 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:112 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:93 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:14616 (14.2 KiB) TX bytes:17776 (17.3 KiB) 

eth1  Link encap:Ethernet HWaddr 00:00:00:00:00:11 
      inet addr:10.0.1.1 Bcast:10.0.1.255 Mask:255.255.255.0 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

[email protected]:~$ 

这是从使用ifconfig

[email protected]:~$ cat script.sh 
ifconfig | grep ad.*Bc | cut -d: -f2 | awk '{ print $1}' 
[email protected]:~$ 

输出看起来像只打印IP地址这

[email protected]:~$ ./script.sh 
192.168.1.1 
10.0.1.1 
[email protected]:~$ 

我试图做到的是打印的IP地址的输出在1号线...像这样的东西。

[email protected]:~$ ./script2.sh 
192.168.1.1 10.0.1.1 
[email protected]:~$ 

ifconfig可以吗?如果是的话,我将不胜感激,如果你能分享这个窍门。由于

+0

看到这个https://stackoverflow.com/questions/23934425/parse-ifconfig-to-get-only-my-ip-address-using-bash ?rq = 1 – manishr

+0

@manishr,这是不同的。这是仅打印IP地址的输出(默认是将每个IP地址打印在新行中,而不是1行)。顺便说一句,我已经提供了关于该链接的答案。您可能需要再次检查该链接。谢谢 我在这里想要完成的是打印1行输出的IP地址,zhenguoli已经提供了准确的答案 –

回答

1
ifconfig | grep ad.*Bc | cut -d: -f2 | awk '{ print $1}' | { tr '\n' ' '; echo; } 

你的代码几乎是功能性的。只需将换行符转换为空格并添加更多换行符即可。

+1

击败我吧+1 – Wossname

1

如果你有hostname

hostname -I 

测试:

$ hostname -I 
192.168.2.253 192.168.0.179 
+0

-I(首都)不支持在这个框中 user @ BusyBox:〜 $主机名-I 主机名:无效选项 - '我' BusyBox v1.24.2(2016-05-16 13:46:43 UTC)多重调用二进制。 用法:主机名[选项] [主机名| -F FILE] 获取或设置主机名或DNS域名 -s短 -i地址的主机名 -d DNS域名 -f完全合格域名 -F文件中使用文件的内容作为主机名 用户@BusyBox:〜$ –

0
ifconfig | awk '{match($0,/inet addr:([^ ]+)/,a);x=x FS a[1]}END {print x} ' 
    142.133.152.191   127.0.0.1 

或者使用grep

ifconfig | grep -oP 'inet addr:\K[^ ]+' | xargs 
142.133.152.191 127.0.0.1