고유한 SSID당 하나의 항목을 표시하도록 "nmcli dev wifi"를 제한합니다.

고유한 SSID당 하나의 항목을 표시하도록 "nmcli dev wifi"를 제한합니다.

NetworkManager의 그래픽 인터페이스(트레이 아이콘을 통해)를 사용하면 약 10개의 SSID(현재 위치에 대해)가 표시됩니다. 그러나 사용하면 nmcli dev wifi약 55개의 항목이 반환됩니다. 그 이유는 동일한 SSID가 서로 다른 신호 강도(때로는 전송 속도도 다름)로 여러 번 돌아오기 때문입니다. 대부분의 중복 SSID는 서로 다른 채널/대역을 갖고 있지만 일부는 동일한 채널/대역을 갖고 있습니다.

샘플 출력

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 

다음 명령은 약 55개의 연결도 나열합니다.

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

NetworkManager GUI를 사용하여 nmcli동일한 결과를 얻고 결과를 고유 SSID당 하나의 항목으로 제한하려면 어떻게 해야 합니까? SSID가 어느 채널/밴드에 있는지 알지 못한 채 이를 달성하고 싶습니다(이 경우 grep을 사용할 수 있음). 예를 들어, 신호 강도가 가장 높은 채널/대역에 대한 항목만 반환됩니다.

답변1

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

awk 스크립트는 다음과 같이 작동합니다.

  • -F' +' - 구분 기호는 두 개 이상의 공백입니다.
  • 이전에 표시되지 않은 경우 두 번째 열(SSID)을 인쇄합니다. 그런 다음 값에 1을 추가하면 다음에 다시 인쇄되지 않습니다.

관련 정보