Используйте вашу вторую команду, поместите все символы после имени интерфейса в заголовок, чтобы он не печатался как часть совпадения.
ifconfig | pcregrep -M -o '^[^\t:]+(?=:([^\n]|\n\t)*status: active)'
Когда я делаю это, вывод:
en0
awdl0
См. Что такое AWDL (Apple Wireless Direct Link) и как он работает? для чего awdl0
.
Ваша первая команда должна работать, если просто напечататьрезультат конвейера networksetup
без использования ifconfig
.Это работает для меня:
networksetup -listnetworkserviceorder | grep 'Wi-Fi, Device' | sed -E "s/.*(en[0-9]).*/\1/"
У меня есть Wi-Fi, а не Ethernet.