Analise a primeira linha para encontrar em qual posição cada coluna é iniciada e, em seguida, analise as outras linhas com base nos números das colunas. Por exemplo, o script a seguir imprime a coluna 2, que é o SSID.
nmcli_output=$(nmcli dev wifi)
printf %s\n "$nmcli_output" | awk -v column=2 '
NR==1 {
i=1; p=1;
while(match($0,/^[^ ]+ +/)) {
a[i++] = p;
p += RLENGTH;
$0 = substr($0, RLENGTH+1);
}
}
NR!=1 {
text = substr($0, a[column], a[column+1] ? a[column+1]-a[column] : length);
sub(text, / +$/, "");
print text
}'
Dependendo do que você deseja fazer, chamar o awk várias vezes pode não ser a melhor solução. Tenha em mente que você pode executar comandos shell a partir do awk com a função system
.