sudo iwlist wlan0 扫描 | grep ESSID > essid.txt (如何导出 txt 文件中不含 ESSID 一词的文件)

sudo iwlist wlan0 扫描 | grep ESSID > essid.txt (如何导出 txt 文件中不含 ESSID 一词的文件)

所以我的目标是回答我正在研究的另一个问题。这是连接到开放的 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-lESSID:(.*)$&& 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 的字段。

相关内容