Foros del Web » Administración de Sistemas » Unix / Linux »

Como eliminar texto innecesario con Grep?

Estas en el tema de Como eliminar texto innecesario con Grep? en el foro de Unix / Linux en Foros del Web. Buenas, tengo texto innecesario en miles de archivos y necesito borrar dicho texto de tales archivos. Les doy un ejemplo: ---------------------------------------------------- No No No No ...
  #1 (permalink)  
Antiguo 08/05/2014, 13:12
 
Fecha de Ingreso: octubre-2013
Mensajes: 64
Antigüedad: 11 años, 1 mes
Puntos: 0
Como eliminar texto innecesario con Grep?

Buenas, tengo texto innecesario en miles de archivos y necesito borrar dicho texto de tales archivos.
Les doy un ejemplo:

----------------------------------------------------
No No No No No No No No No
No No No No No No No No No
Texto innecesario

Texto Importante
Este Texto es importante y necesito conservarlo
---------------------------------------------------

Necesito borrar todo el texto que hay antes de la linea Texto Innecesario. Tambien la linea
Texto innecesario debe ser borrada inclusive.

Como puedo hacer dicho comando y que se efectue en todos los archivos de un directorio, desde ya muchas gracias
  #2 (permalink)  
Antiguo 12/05/2014, 13:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como eliminar texto innecesario con Grep?

Lo de hacerlo en todos los archivos de un directorio es secundario, ya que la línea de comandos te provee herramientas para hacerlo de forma fácil (for i in *, find . -type f, etc)

Veamos cómo resolverlo entonces para un archivo individual.
sed te permite aplicar una acción para un rango delimitado por línea o por un patrón, y tiene una acción que es "eliminar" (d). Lo siguiente borra todo desde la primera línea hasta que se encuentra el patrón "Texto innecesario":
Código BASH:
Ver original
  1. sed '1,/^Texto innecesario/ d' mi_archivo.txt


Saludos.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:13.