我正在尝试在新安装的 Arch Linux 上配置无线网络。该命令iw dev wlp3s0 scan
提供有关所有找到的网络的信息。我只需要有关我的 SSID 的信息。
答案1
我这里没有 wifi 可供检查,但我相信iw dev IFACE scan
每个部分都以非缩进的行开始,并缩进所有后续行。因此,您可以将非缩进行视为分节符。
这用通常的命令解析起来不太容易,所以你可以分两步完成。首先在会话之间插入一个空行。然后使用awk的段落模式。
iw dev wlp3s0 scan |
sed 's/^[^ \t]/\n&/' |
awk -v RS= '/^[ \t]*SSID: myssid$/'
请注意正确引用 SSID 中的任何特殊字符。如果您将其作为变量传递并且需要安全地处理特殊字符,则需要做更多的工作。
iw dev wlp3s0 scan |
sed 's/^[^ \t]/\n&/' |
awk -v RS= -v target="$ssid" '{
ssid = substr($0, index($0, "\tSSID:"));
ssid = substr(ssid, 1, index(ssid, "\n"));
if (ssid == target) print;
}'