Unix/Perl: elimina el contenido de un archivo antes de un patrón

Tengo un archivo como este

### SECTION 1 ###
data data
data data
### SECTION 2 ###
data data 
data data

Ahora quiero todo antes SECCIÓN 2 ser eliminado.

¿Cómo puedo hacer esto en Perl o Unix?

preguntado el 04 de julio de 12 a las 10:07

3 Respuestas

Para editar el archivo en el lugar:

perl -i -ne 'print if /SECTION 2/..0' file

Respondido 04 Jul 12, 10:07

perl -ne '$m = 1 if $_ =~ /SECTION 2/ ; next unless $m ; print $_;' filename > newfilename

Respondido 04 Jul 12, 10:07

Por lo que vale, el uso explícito de $_ es a menudo superfluo (y más difícil de leer, en mi humilde opinión). $m=1 if /SECTION 2/; next unless $m; print; es semánticamente idéntica a esta respuesta. - almohada

$ perl -pi -e '$_ = "" unless /SECTION 2/ .. /(*FAIL)/' file

Respondido 04 Jul 12, 10:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.