所以我的目标是回答我正在研究的另一个问题。这是连接到开放的 Wifi。目前我已经很接近了,因为我知道只有一个 Wifi 连接,我想导出结果
sudo iwlist wlan0 scan | grep ESSID
到一个文本文件。当前的输出是:
ESSID: "MyNetworkSSID" # Which would end up being in the file
我想要的是一个文本文件,只显示
“我的网络SSID”
答案1
别费心了grep
。直接通过管道传输到awk
如下:
$ sudo iwlist wlan0 scan | awk -F ':' '/ESSID:/ {print $2;}'
"BTWifi-with-FON"
"BTHub5-FTQN"
"BTWifi-X"
"4GEEOnetouchY800z_2DEB"
这将执行正则表达式搜索ESSID:
并在冒号 ( -F ':'
) 上拆分该行,然后打印该拆分的第二个元素 ( print $2
)。
或者,通过管道perl
:
$ sudo iwlist wlan0 scan | perl -nle '/ESSID:(.*)$/ && print $1'
这会导致在输入 ( ) 的每一行上perl
运行命令 ( )并在每行末尾添加换行符 ( )。该命令是一个正则表达式,用于搜索并捕获剩余行 ( )。找到匹配项后,它会打印捕获 ( )。-e
-n
-l
ESSID:
(.*)$
&& print $1
答案2
Hazar,这有效,但它更具体,因为它与双引号和排除 ESSID 一词有关。
sudo iwlist wlan0 scan | grep ESSID | grep -o '"[^"]\+"' >> essid.txt
答案3
尝试
sudo iwlist wlan0 scan | grep -i essid | awk -F'"' '{ print $2 }' >> essid.txt
grep
这通过管道传输to的输出awk
,它使用 的分隔符"
并且仅打印具有 ESSID 的字段。