Limitar 'nmcli dev wifi' para exibir uma entrada por SSID exclusivo

0

Quando eu uso a interface gráfica para o NetworkManager (através do ícone da bandeja), ele exibe cerca de 10 SSIDs (para minha localização atual). No entanto, quando eu uso nmcli dev wifi it retorna cerca de 55 entradas. A razão é que o mesmo SSID é retornou várias vezes com intensidade de sinal diferente (e às vezes até taxa de transferência diferente). A maioria dos SSIDs duplicados tem canais / bandas, mas alguns têm o mesmo.

Exemplo de saída

IN-USE  SSID               MODE   CHAN  RATE        SIGNAL  BARS  SECURITY    
        G4_9647            Infra  11    65 Mbit/s   84      ▂▄▆█  WPA2        
        Telekom            Infra  11    130 Mbit/s  64      ▂▄▆_  --          
        Airport-Frankfurt  Infra  11    130 Mbit/s  62      ▂▄▆_  --          
        FRAWiSe            Infra  11    130 Mbit/s  60      ▂▄▆_  WPA2 802.1X 
        FRAWiSe            Infra  48    405 Mbit/s  60      ▂▄▆_  WPA2 802.1X 
        Airport-Frankfurt  Infra  48    405 Mbit/s  60      ▂▄▆_  --          
        Ca81pVb5jKTw       Infra  11    130 Mbit/s  59      ▂▄▆_  WPA2        
        Telekom            Infra  48    405 Mbit/s  59      ▂▄▆_  --          
        Airport-Frankfurt  Infra  36    270 Mbit/s  57      ▂▄▆_  --          
        Telekom            Infra  36    270 Mbit/s  55      ▂▄__  --          
        FRAWiSe            Infra  36    270 Mbit/s  55      ▂▄__  WPA2 802.1X 
        Ca81pVb5jKTw       Infra  11    130 Mbit/s  54      ▂▄__  WPA2        
        AndroidAP 3        Infra  6     65 Mbit/s   50      ▂▄__  WPA2        
        FRAWiSe            Infra  11    130 Mbit/s  50      ▂▄__  WPA2 802.1X 

Os seguintes comandos também listam cerca de 55 conexões

sudo iwlist wlp4s0 scan | grep ESSID
sudo iw dev wlp4s0 scan | grep SSID

Como posso obter o mesmo resultado usando nmcli como no NetworkManager? GUI e limitar os resultados a uma entrada por SSID exclusivo? Eu gostaria de alcançar isso sem saber em qual canal / banda os SSIDs estão ligados (nesse caso eu poderia apenas use grep). Por exemplo, retornando apenas a entrada com o canal / banda que tem a maior intensidade de sinal.

    
por joelostblom 22.08.2018 / 14:46

1 resposta

1

nmcli dev wifi | awk -F'  +' '{ if (!seen[$2]++) print}'

O script awk funciona da seguinte maneira:

  • -F '+' - O separador é dois ou mais espaços
  • Se a segunda coluna (SSID) não tiver sido vista anteriormente, imprima. Em seguida, adicione 1 a esse valor para que, da próxima vez, não seja impresso
por 25.11.2018 / 06:55