sudo iwlist wlan0スキャン| grep ESSID> essid.txt(txtファイルにESSIDという単語が含まれていないファイルをエクスポートする方法)

sudo iwlist wlan0スキャン| grep ESSID> essid.txt(txtファイルにESSIDという単語が含まれていないファイルをエクスポートする方法)

だから私の目標は、私が作業している別の質問に答えることです。これはオープンWi-Fiに接続。現在、Wi-Fi接続が1つしかないことを知って結果をエクスポートしたいので、非常に近いです。

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)の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これは出力をパイプし、awk区切り文字を使用し、"ESSIDを持つフィールドのみを印刷します。

関連情報