Usando o GNU grep
:
$ sudo iwlist wlan0 scan | grep -oP ':"\K[^"]+?(?=")'
DHS_3RD_FLOOR
MAXTA
MAXTA_5THWL
OPENSTACK
IOT
ved_opa
dlink
WifiFeazt
O sinalizador -o
significa "imprimir apenas a parte correspondente da linha", quando mais de uma correspondência for encontrada, todas serão impressas. O -P
habilita os PCREs que nos fornecem \K
("ignorar tudo correspondido até aqui") e lookaheads . Estes permitem corresponder dependendo dos seguintes caracteres, mas sem incluir os ditos personagens na própria partida. Portanto, a expressão regular significa "procure por :"
e descarte-a, depois combine o máximo de "
possível até o próximo "
".
Para obter tudo em uma linha, passe por tr
:
$ sudo iwlist wlan0 scan | grep -oP ':"\K[^"]+?(?=")' | tr '\n' ' '
DHS_3RD_FLOOR MAXTA MAXTA_5THWL OPENSTACK IOT ved_opa dlink WifiFeazt $
Ou para obter uma nova linha:
$ echo $(sudo iwlist wlan0 scan | grep -oP ':"\K[^"]+?(?=")' | tr '\n' ' ')
DHS_3RD_FLOOR MAXTA MAXTA_5THWL OPENSTACK IOT ved_opa dlink WifiFeazt