Posso recomendar o uso de csplit (split de contexto), a la:
csplit [opções] arquivo PATTERN
Por exemplo, vamos pegar um arquivo filename contendo
one
two
three
four
five
six
seven
eight
com o comando csplit filename / four /
obtemos o arquivo xx00 com
one
two
three
e arquivo xx01 com
four
five
six
seven
eight
Mais detalhes podem ser encontrados no link e também em link