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
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
На самом деле намного читаемее как-нибудь так:
cat /proc/net/dev | awk '$1 ~ /^eth|^em|^wlan/ && $2 > 0 { print substr($1, 1, length($1)-1); }'
или то же самое на любом другом языке.
Reply
Reply
grep -oP '^\s*((eth|em)\d+)(?!:0)' /proc/net/dev | tr -d ' '
Reply
Leave a comment