splitting files based on text in the file

I need to split a file based on certain context inside the file. Is there a unix command that can do this? I have looked into split and csplit but it does not seem like those would work because I need to split this file based on certain text. The file has multiple records and I need to split this file by lookiing at a certain field and the value of this field changes often. I would appreciate any help on this.

Awk is the obvious choice. For example, read infile and create outfile.1, outfile.2, etc....

awk 'BEGIN{cnt=1}(condition){cnt++}{print $0 > "outfile." cnt}' infile