pattern occurrences multiple files change all regex vim sed text-processing replace

regex - occurrences - ¿Cómo puedo eliminar todas las líneas que no comienzan con ciertos caracteres?



vim replace in selection (7)

Necesito encontrar una expresión regular para eliminar todas las líneas que no comiencen con "+" o "-".

Quiero imprimir una copia en papel de un archivo diff grande, pero muestra 5 o más líneas antes y después de la diferencia real.


En VIM:

:g!/^[+-]/d

Aquí está la traducción al inglés:

¡Haga algo globalmente a todas las líneas que NO lo hacen ! concuerde con la expresión regular: comienzo de la línea ^ seguido de + o - , y ese algo que hacer es seleccionar esas líneas.


Si necesita hacer algo más complejo en términos de expresiones regulares, debe usar este sitio: http://txt2re.com/

también proporciona ejemplos de código para muchos idiomas diferentes.


sed -e ''/ ^ [^ + -] / d''


diff -u <some args here> | grep ''^[+-]''

O simplemente no puedes producir las líneas adicionales en absoluto:

diff --unified=0 <some args>



cat your_diff_file | sed ''/^[+-]/!D''


egrep "^[+-]" difffile >outputfile

En lugar de eliminar todo lo que no coincide, muestra solo las líneas que coinciden. :)