A ferramenta recomendada para processamento de texto é awk .
Tente isto:
awk '/categories/,/layout/ { if (!/layout/) print }' your_file
Este comando imprime tudo a partir de categories até layout sem essa linha.
Saída:
categories:
- tips
- programming
- howto
- another-tag
Se você deseja ter apenas os itens entre categories e layout , basta adicionar um segundo padrão à condição if desta forma:
awk '/categories/,/layout/ { if (!/layout/ && !/categories/) print }' your_file
A sua saída será assim:
- tips
- programming
- howto
- another-tag