doas ifconfig urtwn0 scan | awk -v q='"' ' BEGIN { print "["; first=1 } /nwid/ { ssid=""; chan=""; bssid=""; signal=""; for (i=1; i<=NF; i++) { if ($i == "nwid") ssid = $(i+1); if ($i == "chan") chan = $(i+1); if ($i == "bssid") bssid = $(i+1); if ($i ~ /^-[0-9]+dBm$/) signal = $i; } if (ssid != "") { if (!first) printf ","; first=0; gsub(q, "\\" q, ssid); printf "{\"ssid\":%s%s%s,\"channel\":%s,\"bssid\":\"%s\",\"signal\":\"%s\"}", q, ssid, q, chan, bssid, signal; } } END { print "]" }' | jq -c 2>/dev/null || echo '[]'