Como restringir a saída do iw dev wlp3s0 scan?

2

Estou tentando configurar uma rede sem fio em um Arch Linux recém-instalado. O comando iw dev wlp3s0 scan fornece informações sobre todas as redes encontradas. Eu só preciso das informações sobre o meu SSID.

    
por Maksim Dmitriev 05.08.2013 / 19:45

1 resposta

1

Não tenho wifi por aqui para verificar, mas acredito que iw dev IFACE scan inicie cada seção com uma linha sem recuo e recue todas as linhas subsequentes. Então você pode tratar uma linha não recuada como uma quebra de seção.

Isto não é muito fácil de analisar com os comandos habituais, pelo que pode fazê-lo em dois passos. Primeiro insira uma linha vazia entre as sessões. Então use o modo de parágrafo do awk.

iw dev wlp3s0 scan | 
sed 's/^[^ \t]/\n&/' |
awk -v RS= '/^[ \t]*SSID: myssid$/'

Cuidado para citar qualquer caractere especial no SSID corretamente. Se você está passando isso como uma variável e precisa lidar com caracteres especiais com segurança, é um pouco mais trabalhoso.

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;
}'
    
por 06.08.2013 / 03:49