Quiero eliminar todas las líneas, excepto las que contienen el patrón coincidente.Eliminar todas las líneas, excepto las mejores prácticas de línea de patrones coincidentes (sed)
Esto es cómo lo hice:
sed -n 's/matchingpattern/matchingpattern/p' file.txt
Pero tengo curiosidad porque cambia el nombre de coincidencia de patrones a la misma coincidencia de patrones. Parece un desperdicio aquí.
¿Hay una mejor manera de hacerlo?
Sí. Pero sed tiene esta ingeniosa bandera en-lugar que grep no tiene. sed -i '/ pattern /! D' nombre de archivo es mucho más fácil que grep 'patrón' nombre de archivo> filename.tmp && mv filename.tmp nombre de archivo – Geeklab
Advertencia: he proporcionado el distintivo --quiet para evitar que se impriman los resultados a la terminal, sin darse cuenta de que -i ya lo logra en sí mismo. Esto significa que todas las líneas fueron eliminadas, incluso aquellas que coinciden con el patrón. – EriF89