Seu padrão Awk está falhando porque a palavra "profile" não inicia o registro, [profile
faz ...
awk '/^\[profile/ {gsub(/]/,""); print $2}' test.txt
dev
prod
Outra abordagem seria carregar uma matriz usando split
:
awk -F'[][]' '/profile/ {p=split($2,profiles," "); print profiles[2]}' test.txt
dev
prod