を使用して iw
私はnm-tool
インストールしていないのでiw
。
次のコマンドは、信号強度でアクセスポイントを並べ替えます。
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
各コマンドの説明:
iw dev wlan0 scan
:インターフェイス経由で到達可能なアクセスポイントをスキャンします wlan0
egrep "signal:|SSID:"
:iw
の出力から信号強度とSSIDを含む行を取得します。出力は次のようになります。
信号:-77.00 dBm
SSID:nameOfAccessPoint1
信号:-71.00 dBm
SSID:nameOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //"
:egrep
の出力をこれに減らします:
-77.00 dBm
nameOfAccessPoint1
-71.00 dBm
nameOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}'
:信号強度とSSIDを同じ回線に配置します。より具体的には、行番号(NR
)が偶数の場合、つまりアクセスポイントを示す行にいる場合、出力レコードのセパレータ(ORS
)は改行でなければなりません。それ以外の場合は、信号強度を含むライン上にあるためORS
、単純なスペースを作成してラインに参加します。
sort
この出力の場合、信号強度とアクセスポイントのリストが表示され、最も強い信号が上にあるアクセスポイントが表示されます。
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
注意:一部のアクセスポイントには拡張機能があります。拡張機能:* SSIDリスト
そのため、「SSID」の代わりに「SSID:」をgrepすることで、この余分な出力を回避して、コマンドが失敗するようにすることができます。