Se você quiser apagar todas as linhas em branco começando com a linha 5 e manter as linhas 1 a 4, você pode usar
sed -i '5,${;/^$/d;}' temp_spec.rb
O { é o operador de agrupamento, portanto, o primeiro comando 5,${ significa "da linha 5 até o final da entrada ( $ ) executar os comandos a seguir até coincidir com } ". Os comandos entre { e } podem ser prefixados novamente por endereços, então o comando interno /^$/d significa "se não houver nada entre início ( ^ ) e fim ( $ ) da linha, exclua ". Comandos Sed podem ser separados por ; . (Esse é um recurso mal documentado do sed. Ele é suportado pela maioria das implementações de sed, mas é não totalmente portáveis .) Como observado por Hauke, o ; after { é opcional; o antes de } é necessário.
Se você quiser excluir todas as linhas em branco começando com a linha 5 e também excluir as linhas de 1 a 4, é mais fácil:
sed -i '1,4d;/^$/d' temp_spec.rb