Você já tentou o awk?
$> iwlist wlan0 scan | egrep 'Address|ESSID' | awk -F : '{ $1="";print}'
00 24 7E 1F 7B 4D
"YouShallNotPass!"
Com -F eu mudei o separador para dois pontos :
e infelizmente peguei outros dois pontos do endereço, o que pode ser solucionado com a configuração do OFS, como abaixo:
$ iwlist wlan0 scan | grep Add | awk -F : '{OFS=":";$1="";print substr($0, 3) }'
00:24:7E:1F:7B:4D
Olhando para os resultados do 'iwlist ... scan', eles nem sempre são regulares. Eu devo mencionar duas outras linhas que você não vai entender assim:
- Qualidade e sinal (sem dois pontos), use em vez disso
-
iwlist wlan0 scan | grep Quality | awk '{print $3}' | awk -F = '{print $2}'
para sinal -
iwlist wlan0 scan | grep Quality | awk '{print $1}' | awk -F = '{print $2}'
para qualidade
-
- Taxas de bits (bem, no meu caso, há três linhas com taxas de bits, e uma não tem dois pontos, apenas valores - obviamente, o script Awk acima a perde).
Eu não estou tão familiarizado com o que as taxas de bits exibem exatamente, por isso não saber o seu caso de uso para isso e se isso é diferente entre muitos drivers / cartões WiFi / outras pessoas carecem de informações para ajudar aqui.
Preste atenção em você - há outras opções, mas você reteve o que precisava e para que, então eu lhe dei uma solução simples (se longa) específica para o Awk. A mesma informação pode ser obtida via regex Perl ou até Bash.