O primeiro endif ocorre antes do primeiro Delete , por isso ed fica confuso sobre o intervalo especificado "para trás".
Você vai querer primeiro encontrar a primeira ocorrência de Delete , então aplicar o comando dessa linha até o próximo endif :
1,/Delete/
.,/endif/p
O primeiro comando colocará o cursor na primeira linha do arquivo que contém a palavra Delete , e o segundo comando imprimirá as linhas dessa linha até a próxima linha que contém a palavra endif . / p>
Se você fosse dar o mesmo comando em vi , ele iria reclamar com "O segundo endereço é menor do que o primeiro", e vim pediria "Intervalo para trás dado, OK para trocar (y / n) " ao dar o comando de edição :/Delete/,/endif/p .
sed não teria um problema ao procurar o primeiro endereço antes de começar a procurar pelo segundo endereço (já que é um editor de fluxo).