Первый линукса псто!

Apr 25, 2013 03:54

Нати все живые сетевые интерфейсы (считаю, что они называются ethX или emX):

cat /proc/net/dev | perl -pe 's/:\s+/:/' | awk '{print $1;}' | egrep '^(eth|em)[[:digit:]]' | egrep -v ':0$' | awk -F ':' '{print $1;}'

В выводе миожет быть и опущенный интерфейс, если он был ранее поднят. Если нужно, state можно уже отдельно проверять.

linux

Leave a comment

Comments 7

lixter April 25 2013, 04:12:34 UTC
чо-то ваще усложняешь
cat /proc/net/dev | grep -oP '^\s*(eth|em)\d+'
или, если ещё пробелы убрать надо
cat /proc/net/dev | grep -oP '^\s*(eth|em)\d+' | sed -e 's/^\s*//'
(да и наверняка вот эти пробелы в начале можно убрать в grep, с помощью (?:...) или подобного)

Reply

fenster April 25 2013, 10:47:22 UTC
Костя, ему же нужны живые, т.е. те, через которые байтики текли. Он там поэтому делает grep -v ноль-первой-цифрой.

На самом деле намного читаемее как-нибудь так:

cat /proc/net/dev | awk '$1 ~ /^eth|^em|^wlan/ && $2 > 0 { print substr($1, 1, length($1)-1); }'

или то же самое на любом другом языке.

Reply

fenster April 25 2013, 10:47:59 UTC
wlan добавил, чтобы у себя на ноуте затестить, да

Reply

lixter April 25 2013, 11:09:17 UTC
ты тоже усложняешь
grep -oP '^\s*((eth|em)\d+)(?!:0)' /proc/net/dev | tr -d ' '

Reply


Leave a comment

Up