sudo iwlist varredura wlan0 | grep ESSID essid.txt (Como faço para exportar sem a palavra ESSID no arquivo txt)

0

Então, meu objetivo é responder à minha outra pergunta em que estou trabalhando. Qual é Conectar ao Open Wifi . Atualmente estou chegando perto, pois sei que existe apenas uma conexão Wifi, gostaria de exportar os resultados de

sudo iwlist wlan0 scan | grep ESSID

para um arquivo de texto. A saída atualmente é:

ESSID: "MyNetworkSSID"  # Which would end up being in the file

O que eu quero é um arquivo de texto que diga apenas

"MyNetworkSSID"

    
por FreeSoftwareServers 21.12.2015 / 07:01

3 respostas

1

Não se preocupe com grep . Pipe diretamente para awk da seguinte forma:

$ sudo iwlist wlan0 scan | awk -F ':' '/ESSID:/ {print $2;}'
"BTWifi-with-FON"
"BTHub5-FTQN"
"BTWifi-X"
"4GEEOnetouchY800z_2DEB"

Isso realiza uma pesquisa de expressão regular para ESSID: e as divisões que fazem linha em dois pontos ( -F ':' ) após o qual ele imprime o segundo elemento dessa divisão ( print $2 ).

Ou canalize-o em perl :

$ sudo iwlist wlan0 scan | perl -nle '/ESSID:(.*)$/ && print $1'

Isso faz com que perl execute o comando ( -e ) em cada linha da entrada ( -n ) e adicione um avanço de linha no final de cada linha ( -l ). O comando é um regex que procura por ESSID: e captura a linha restante ( (.*)$ ). Ao encontrar essa correspondência, ela imprime a captura ( && print $1 ).

    
por 21.12.2015 / 08:55
0

Hazar, isso funcionou, mas é mais específico do caso, pois tem a ver com as aspas duplas vs excluindo a palavra ESSID.

sudo iwlist wlan0 scan | grep ESSID | grep -o '"[^"]\+"' >> essid.txt
    
por 21.12.2015 / 07:28
0

Tente

sudo iwlist wlan0 scan | grep -i essid | awk -F'"' '{ print $2 }' >> essid.txt

Isso canaliza a saída de grep para awk , que usa o delimitador de " e apenas imprime o campo com ESSID.

    
por 21.12.2015 / 07:25

Tags