2012-04-17 21 views
21

Estoy tratando de eliminar automágicamente todas las líneas de un archivo de texto que contiene una letra "T" que no está seguida inmediatamente por una "H". He estado usando grep y enviando la salida a otro archivo, pero no puedo obtener la expresión mágica que me ayudará a hacer esto.Grep Regex: enumere todas las líneas excepto

No me importa usar awk, sed o alguna otra herramienta de linux si grep no es la herramienta correcta para usar.

Respuesta

51

Eso debería hacerlo:

grep -v 'T[^H]' 

-v: líneas de impresión que no se ajuste

[^ H]:. Coincide con cualquier carácter, pero H

+2

Ambos casos de '' * no son necesarios , ya que grep escanea todas las líneas buscando una coincidencia –

+0

Gracias por el comentario. Editado para reflejar esto. – byrondrossos

9

que puede hacer:

grep -v 'T[^H]' input 

-v es la opción de correspondencia inversa de grep que no muestra las líneas que coinciden con el patrón.

La expresión regular utilizada es T[^H] que coincide con cualquier línea que como T seguido de cualquier carácter que no sea H.

Cuestiones relacionadas