Я получаю что-то вроде этого:
ssid=$(iwlist wlan0 scanning |
awk -F: '
BEGIN{ printf "zenity --list --text \"Available Networks\" --list --column ESSID --column Secure --column Signal "; }
/Quality/{ split($0,x,"="); Quality = int(x[2]*100/70+.5); }
/Encryption/{ Encryption = $2; }
/ESSID/{ ESSID = $2;
printf "%s \"%s\" \"%s%%\" ", ESSID, Encryption, Quality
}' |
sh)
На самом деле не использует grep, но делает то, что вы хотите.