Вы можете сделать (на Mac):
tr "\n" "\t" < hosts.yml | sed $'s%\t\\[%\\\n\[%g' | grep 'prod\|dev' | sed $'s%.*\]\\\t%%g' | tr "\t" "\n"
tr
выведет все в одну строку sed
будет линия разрыва перед каждым разделом grep
вырежет линии (секции )нужные вам sed
удалит часть []. tr
разбивает строку, поэтому вы получаете одно имя хоста в строке.