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_val = $i; gsub("dBm", "", signal_val); signal = $i; } } if (ssid != "" && signal_val > -70) { if (!first) printf ","; first=0; gsub(q, "\\" q, ssid); # Escape any quotes in 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 '[]'