miércoles, 22 de enero de 2014

Concatenar y filtrar con grep

Hoy me preguntaron:
  1. ¿cómo puedo realizar una búsqueda y filtrado con grep del contenido de un directorio?
  2. ¿cómo puedo realizar una búsqueda y filtrado del contenido de un archivo?
  3. ¿cómo puedo concatenar varios tipos de búsqueda en un solo grep? bien sea un directorio o del contenido de un archivo.
Pues la repuesta es simple: SI, tu puedes hacer una búsqueda así:

zcat archivo.gz | grep lo_que_quiero_encontrar

De esta forma me mostrara solo lo_que_quiero_encontrar que este dentro del archivo.gz, ahora bien, si quiero filtrar una búsqueda ejecutaría:

 ls -la | grep lo_que_quiero_encontrar

Con esto estaríamos listando todo el contenido de un directorio, pero solo mostramos lo_que_quiero_encontrar, si quiero hacer un filtrado de la búsqueda del contenido del archivo:

 zcat archiv.gz | grep lo_que_quiero_encontrar | grep filtro1

Estaríamos mostrando de lo_que_quiero_encontrar, solo lo que contenga filtro1, si queremos que nos muestre dos búsquedas: lo_que_quiero_encontrar y lo_que_quiero_encontrar_1, tendríamos que hacer así:

ls -la | grep 'lo_que_quiero_encontrar\|lo_que_quiero_encontrar_1'

En este caso, listamos el contenido de un directorio y solo mostramos:  lo_que_quiero_encontrar y lo_que_quiero_encontrar_1, en el caso de que sea del contenido de un archivo:

zcat archiv.gz | grep 'lo_que_quiero_encontrar\|lo_que_quiero_encontrar_1'

También podemos hacer un filtrado de las dos búsquedas:

zcat archiv.gz | grep 'lo_que_quiero_encontrar\|lo_que_quiero_encontrar_1' | grep filtrado1

Así obtenemos del contenido del archivo lo_que_quiero_encontrar y lo_que_quiero_encontrar_1 que contengan filtrado1.

Y listo, mas simple imposible.

1 comentario:

JG dijo...
Este comentario ha sido eliminado por el autor.