Utilizando sedpara modificar el archivo en su lugar:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Esto le indica sedque elimine todas las líneas que no coinciden con el patrón. El patrón en sí es ^(inicio de línea), seguido de uno reporto -tseguido de uno ho o.
Debe tener en cuenta que esto no es una modificación real en el lugar: sedcrea una copia de seguridad temporal y sobrescribe el archivo original con ella.
Si desea sedconservar una copia de respaldo del archivo original (lo que podría ser una buena idea si el archivo contiene datos críticos), otorgue al -iconmutador una extensión para crear un archivo de respaldo:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
modificará your_filey creará una copia de seguridad del original llamado your_file.bak.
Una nota al margen
No malinterpretes mis intenciones ni te ofendas por esto, pero he notado que tienes muchas preguntas similares relacionadas con el procesamiento de texto y expresiones regulares. Te aconsejo que empezar a aprender sed, awky greppor su cuenta para ayudar a acelerar su productividad. Nuevamente, no me malinterpreten, estoy muy feliz de ayudar (como la mayoría de las personas por aquí); es solo que creo que puede beneficiarse enormemente al recoger estas herramientas para su uso diario.
Solo para demostrar lo útil que es la gente por aquí, considere la sugerencia de @ slm en los comentarios a continuación y siéntase libre de visitar esta sala de chat en cualquier momento para preguntas.