¿Cómo excluir varias líneas alrededor del partido con grep o una herramienta similar?

Puedo encontrar todas las líneas de archivo no coincidentes congrep -v 'my_pattern' some_file. También puedo imprimir algunas cadenas antes / después / alrededor del partido con-A, -B o-C opciones de grep. Pero no puedo combinar estas dos opciones para excluir líneas con patrón y cierta cantidad de líneas cerca de líneas coincidentes: grep muestra el archivo completo como resultado. Por ejemplo, tengo un registro con muchos patrones como este:

25.02.2012 10:41:37 here goes memory state
25MiB free
16MiB allocated
max free block is 4MiB

Me gustaría filtrarlos. Por supuesto, puedo escribir un script perl / awk personalizado, pero ¿hay alguna forma más elegante de hacerlo?