Grep es un pequeño programa de Unix para encontrar patrones coincidentes. Iniciado como un programa de Unix, se puede encontrar en Linux, así como en Mac y BSD. Puede leer casi cualquier texto, lo que significa que puede leer la entrada de otros comandos, o puede abrir y buscar archivos directamente. Grep es increíblemente útil, especialmente para buscar directorios desde la línea de comandos.
Con eso, ¿por qué no probar uno de los usos más comunes de Grep, encontrar un archivo en un directorio? Busque en su carpeta «~/Descargas» cualquier imagen «jpg».
ls ~/Downloads | grep .jpg
Grep los enumerará a todos y resaltará la parte «.jpg», ya que es lo que buscó.
Canaliza la salida (con el comando «|») de casi cualquier comando en grep
. Si tiene un archivo de texto sin formato por ahí, cat
sáquelo y canalice el resultado a Grep para encontrar una palabra específica.
Grep imprimirá cualquier línea en el archivo que contenga la palabra que le dijiste que buscara.
olvida el caso
Los sistemas similares a Unix distinguen entre mayúsculas y minúsculas, lo que significa que «Ubuntu» es completamente diferente a «ubuntu». Eso puede ser un dolor al buscar algo. Grep tiene una bandera para eliminar el problema. Añade el -i
marca a su búsqueda, y Grep ignorará mayúsculas y minúsculas.
ls ~/Downloads | grep -i Ubuntu
Buscar en un archivo
No sería tan conveniente necesitar cat
cada vez que quería buscar un archivo. En realidad, no lo haces. Grep puede buscar archivos por sí mismo. Pásale la ruta al archivo y Grep hará el resto.
grep -i word /path/to/file.txt
Búsquedas recursivas
Grep puede buscar en más de un archivo o directorio al mismo tiempo. Tenga cuidado, si está buscando nombres de archivos, Grep también buscará archivos de forma predeterminada. los -r
flag le dice a Grep que busque recursivamente.
ls ~/Downloads | grep -r .deb
También puedes combinar esto con otras banderas. Es posible que desee incluir el -I
marcar al hacer búsquedas recursivas para evitar que Grep busque archivos binarios.
ls ~/Downloads | grep -iIr .deb
Encuentra el opuesto
También puedes decirle a Grep que busque todo no que contiene el patrón especificado. Esto sería bueno en los casos en que necesita encontrar un error o tiene un directorio con muchos archivos de uno o dos tipos.
grep -rv '192.168.1.110' /etc/nginx
Palabras y líneas
También podría ser útil decirle a Grep que busque palabras o líneas completas, en lugar de cualquier cosa que contenga un cierto patrón. Imagine que está buscando una cadena de caracteres que es común como parte de una palabra, pero necesita que estén separados. Por ejemplo, la palabra «eso». Obviamente, no habría muchas veces que Realmente quiero buscar un patrón como «eso», pero prueba el punto.
cat textfile.txt | grep -w it
En lugar de imprimir cada palabra que contenga el patrón, Grep solo imprimirá la palabra por sí misma. Hace lo mismo para líneas enteras con el -x
flag, por lo que si está buscando una frase o una sola línea en un archivo de configuración, eso realmente puede ayudar.
Si te interesa investigar todo Grep puede hacer, ejecutar man grep
en una terminal para la documentación completa. Este artículo cubrió los conceptos básicos y todo lo que normalmente necesitará de esta poderosa herramienta. Comparta con nosotros si conoce algún uso poderoso del comando Grep.
Credito de imagen: Shell script puntos de interés a coordenadas