====== Grep ======
El comando **grep** es un [[filtros|filtro]] de [[Unix]] se utiliza para realizar búsquedas de cadenas de texto.
==== Historia ====
Grep fue desarrollado para la [[versiones de unix#unix cuarta edición|Cuarta Edición del Unix de Investigación]]. a mediados de 1973 por Ken Thompson utilizando el lenguaje Macro-11, el ensamblador de la [[pdp#pdp-11|PDP-11]]. Utilizó como base un mismo código de programación presente en el editor de líneas [[ed]], el cual se encargaba de buscar globalmente una expresión regular y presentar las líneas que correspondían a la coincidencia.
Su nombre en sí mismo una //RegEx//: g/re/p (globally search for a regular expression and print matching lines) es la herramienta para filtrado de texto por excelencia en entornos Unix/Linux.
>El Diccionario Oxford tiene una entrada de grep como verbo, debido a esto es posible decir "I'm going to grep my files".
==== Uso básico ====
Podrías usarlo para buscar todas las existencias de la cadena de texto ''gaucho'' en el fichero ''martinfierro.txt'' del directorio, de la siguiente manera:
grep gaucho martinfierro.txt
=== Búsquedas comunes ===
Grep contienen muchas variables que lo hacen muy potente. Alguna de las más utilizadas son:
Búsqueda insensible de mayúsculas:
grep -i cadena fichero.txt
Muestra n líneas __después__ de la cadena de búsqueda:
grep -A n cadena fichero.txt
Muestra n líneas __antes__ de la cadena de búsqueda:
grep -B n cadena fichero.txt
Muestra n líneas antes y después de la cadena de búsqueda:
grep -C n cadena fichero.txt
Muestra las líneas que no coinciden con la cadena de búsqueda:
grep -v cadena fichero.txt
Contea las instancias de la cadena buscada:
grep -c cadena fichero.txt
Muestra únicamente los nombres de fichero que contienen la cadena de búsqueda:
grep -l cadena fichero.txt
Muestra exactamente la cadena especificada:
grep -W cadena fichero.txt
Presenta la [[expresiones regulares|expresión regular]] específica:
grep -e regex fichero
Busca una cadena en un fichero binario:
grep -a cadena fichero
Busca recursivamente en un directorio:
grep -r cadena fichero