Извлеките имя интерфейса и IP-адрес из вывода «ifconfig»

touch file
test_max=45
for ((j=2,i=3;i<test_max;i++,j++)) ; do ln -s $j $i; done
for ((i=1;i<test_max;i++)) ; do if ! [ -f "$i" ]; then echo "$i"; break; fi ; done
41
0
20.12.2019, 19:03
2 ответа

Ваш вопрос немного сложно расшифровать, но я думаю, что это может быть то, что вы пытаетесь сделать:

ifconfig | grep -A1 "^eth-g0 " | grep -Eo "^eth[^ ]+|inet (addr )?[^ ]+" | paste - -

Я основывал это решение на командах, которые вы пытаетесь запустить, в надежде, что их будет легче понять.

Возможно, это не лучший способ сделать это.

0
28.01.2020, 02:38
$ ifconfig | awk '/^eth-g0/ { iface = $1; getline; sub("addr:", ""); print iface, $1, $2 }'
eth-g0 inet 222.222.22.22

Это анализирует вывод, используя awk. При обнаружении строки, начинающейся со строки eth-g0, первое слово сохраняется в переменной (это имя интерфейса ), затем сразу считывается следующая строка и addr:удаляется из новой строки. Затем печатается имя интерфейса вместе с первыми двумя разделенными пробелами словами из новой строки.

1
28.01.2020, 02:38

Теги

Похожие вопросы