linux - 获取每个ip地址/ifconfig接口(interface)命令Linux的前3行

标签 linux ifconfig ipconfig

我正在尝试从一些虚拟机获取前 3 行 IP 地址/ifconfig - 其中一些在 Ubuntu 上运行,其中一些在 CentOS 上运行。

例如:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.106.100  netmask 255.255.240.0  broadcast 172.31.111.255
        inet6 fe80::10c5:1dff:fec0:803e  prefixlen 64  scopeid 0x20<link>
        ether 12:c5:1d:c0:80:3e  txqueuelen 1000  (Ethernet)
        RX packets 7483  bytes 7706844 (7.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2998  bytes 470781 (459.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12100  bytes 3865475 (3.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12100  bytes 3865475 (3.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

从这行代码块中,我只需要获取以下部分:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.106.100  netmask 255.255.240.0  broadcast 172.31.111.255
        inet6 fe80::10c5:1dff:fec0:803e  prefixlen 64  scopeid 0x20<link>

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>

这同样适用于 ip 地址命令。 有什么办法可以使用Linux命令来实现这一点吗?

非常感谢,

罗曼

最佳答案

您可以使用 sed 来做到这一点,

ifconfig | sed -En '/^[^[:space:]]/,+2p; /^[[:space:]]*$/p'

简要说明,

  • 管道结果将由sed处理
  • /^[^[:space:]]/,+2p:搜索并打印不以空白开头的行,并打印以下两行
  • /^[[:space:]]*$/p:搜索并打印空行

关于linux - 获取每个ip地址/ifconfig接口(interface)命令Linux的前3行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629342/

相关文章:

c - 二进制字节在 Linux 串行通信中被误认为是新行

java - 如何确定文件是否正在被另一个进程使用(Java)

networking - ping google.com 或 8.8.8.8 失败

java : regular expression for ipconfig

windows - 作为 CMD 变量的特定以太网的 IP 地址

linux - 使用循环将数据从两行打印到另一个文件

linux serverscript.sh 为真;做,但 sleep 然后重新检查 true

ubuntu - iwconfig -/proc/net/wireless 不存在

PHP 从复杂的字符串中选择文本

windows-phone-8 - 在命令提示符中键入 'ipconfig' 会显示两个 IPv4 地址。我的电脑是哪一台?