Получите первые 3 строки каждой команды ip address/ifconfig интерфейса Linux

Я пытаюсь получить первые 3 строки ip address/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?

Большое спасибо,

Ромен

1 ответ

Решение

Вы можете использовать sed чтобы сделать это,

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

Краткое объяснение,

  • Результат конвейера будет обработан sed
  • /^[^[:space:]]/,+2p: поиск и печать строки, которая не начинается с пробела, а также печать следующих 2 строк
  • /^[[:space:]]*$/p: поиск и печать пустой строки
Другие вопросы по тегам