ifconfig -a| awk '/^wlan|^eth|^lo/ {;a=$1;FS=":"; nextline=NR+1; next}{ if (NR==nextline) { split($2,b," ")}{ if ($2 ~ /[0-9]\./) {print a,b[1]}; FS=" "}}'


Данная команда позволяет получить информацию о сетевых интерфейсах и IP-адресах в системе, используя awk.

ifconfig -a — выводит информацию обо всех сетевых интерфейсах в системе.
| — передает вывод команды слева на вход другой команды справа.
awk ‘/^wlan|^eth|^lo/ {…}’ — выбирает строки, начинающиеся с «wlan», «eth» или «lo».
{;a=$1;FS=»:»; nextline=NR+1; next} — сохраняет имя интерфейса в переменной «a», устанавливает разделитель на символ «:», переходит на следующую строку.
{ if (NR==nextline) { split($2,b,» «)}…} — если текущая строка соответствует следующей на одну, то сохраняет IP-адрес вторым полем в массив «b».
{ if ($2 ~ /[0-9]\./) {print a,b[1]}; FS=» «} — если второе поле содержит цифры и точку, то выводит имя интерфейса и IP-адрес второго поля и устанавливает разделитель на символ пробела.

Альтернативой этой команды может быть использование команды ip addr show или ifconfig с дополнительными аргументами, чтобы получить информацию по конкретному интерфейсу.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *