Este é um problema geral que já apareceu em muitas variantes no StackExchange, por exemplo
A resposta é sempre que não é possível para um processo alterar o ambiente de seu pai (e é isso que você está tentando alcançar quando você pedia a awk
para definir uma variável de ambiente no shell que o gerou ).
A solução recomendada geralmente é a fonte da saída, como Glenn mostrou. Você tem que confiar no programa, no entanto. Você está basicamente executando código arbitrário.
Outra solução, ligeiramente diferente, seria a saída das linhas var=value
para um arquivo nomeado e a origem desse arquivo. (O sourcing basicamente executa o conteúdo de um arquivo no shell atual, como se você os tivesse digitado; consulte o link .) A vantagem dessa abordagem é que você pode verificar o conteúdo deste arquivo antes de obtê-lo.