Com o AWK:
awk '/^#/ { inblock = 0 }; /^# fish/ { inblock = 1 }; inblock'
Isso realmente imprimirá todos os blocos que começam com # fish
. Para parar depois do primeiro bloco:
awk 'inblock && /^#/ { exit }; /^# fish/ { inblock = 1 }; inblock'
Ambas as variantes funcionam definindo uma variável inblock
para 1 ao processar linhas no bloco interessante; a última instrução inblock
aplica a ação padrão (imprime a linha atual) quando inblock
é 1.