Utilizando sed
para modificar el archivo en su lugar:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Esto le indica sed
que 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 report
o -t
seguido de uno h
o o
.
Debe tener en cuenta que esto no es una modificación real en el lugar: sed
crea una copia de seguridad temporal y sobrescribe el archivo original con ella.
Si desea sed
conservar una copia de respaldo del archivo original (lo que podría ser una buena idea si el archivo contiene datos críticos), otorgue al -i
conmutador una extensión para crear un archivo de respaldo:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
modificará your_file
y 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
, awk
y grep
por 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.