显示来自 Linux "ip a s" 的以太网接口及其对应的 IP 地址

Display ethernet interface and its corresponding IP address from Linux "ip a s"

我正在尝试使用 ip addr show 命令

的输出列出 RHEL 节点中可用的所有以太网设备名称及其分配的 IP 地址

我仅使用以下内容打印所有网络接口名称:

ip a s | awk -F: '/^[^ ]/ {print }'

我正在尝试通过在上面的 awk 命令(或最好是 sedperl 可能是一行代码):

eth0: 10.xx.xx.xx
eth1: 172.xx.xx.xx

此外,在输出中必须忽略环回 lo 设备,因为此输出在验证后进入 ansible 清单文件

尝试

ip --oneline addr show

用 Awk 解析应该相当方便。

ip --oneline addr show | awk ' == "inet" &&  != "lo" { print  ": "  }

也许还可以看看 ip --brief,它更紧凑。

对于更高级的用法,还有 ip --json addr show 以 JSON 格式输出有关所有接口的非常详细的信息。另见 the ip manual page.