Я хочу получить имя устройства сетевого интерфейса (ens ###) вместе с соответствующим IP-адресом (###. ###. ###. ###).У меня есть решения, чтобы получить один или другой, но я не смог найти что-то, что может выводить каждую пару (имя + IP) в строку.
Вот команда для получения IP
ip address | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'
И здесь я могу получить имя устройства
ip address | grep -v lo | cut -d ' ' -f2 | tr ':' '\n' | awk NF
Однако я хотел бы получить способ, который бы выводил каждый набор на свою собственную строку, что-то вроде
ens32 10.0.0.100
ens33 10.1.0.100
РЕДАКТИРОВАТЬ:
Вот пример вывода IP-адреса
[root@centos ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/23 brd 10.0.1.255 scope global dynamic ens32
valid_lft 83040sec preferred_lft 83040sec
inet6 0000::000:0000:0000:0000/64 scope link
valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.1.0.100/24 brd 10.0.2.255 scope global dynamic ens33
valid_lft 1277sec preferred_lft 1277sec
inet6 0000::000:0000:0000:0000/64 scope link
valid_lft forever preferred_lft forever
РЕШЕНИЯ:
Оба из них даст мне тот же желаемый выход.Спасибо за помощь!
ip -o addr show scope global | awk '/^[0-9]:/{print $2, $4}' | cut -f1 -d '/'
ip -o addr show scope global | tr -s ' ' | tr '/' ' ' | cut -f 2,4 -d ' '