Grep es un pequeño programa de Unix para encontrar patrones coincidentes. Comenzado como un programa Unix, se puede encontrar tanto en Linux 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á 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 plano por ahí, cat
y canalice el resultado a Grep para encontrar una palabra específica.
cat file.txt | grep word
Grep imprimirá cualquier línea en el archivo que contenga la palabra que le dijo que buscara.
Olvida el caso
Los sistemas tipo 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
a su búsqueda, y Grep ignorará las mayúsculas y minúsculas.
ls ~/Downloads | grep -i Ubuntu
Buscar en un archivo
No sería tan conveniente de necesitar cat
cada vez que quisiera buscar un archivo. De hecho, no es así. 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 recurrentes
Grep puede buscar en más de un archivo o directorio al mismo tiempo. Tenga en cuenta que si está buscando nombres de archivo, Grep también buscará archivos de forma predeterminada. La -r
bandera le dice a Grep que busque de forma recursiva.
ls ~/Downloads | grep -r .deb
También puede emparejar esto con otras banderas. Es posible que desee incluir el -I
marca 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 los que necesita encontrar un error o si 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 puede ser útil decirle a Grep que busque palabras o líneas completas, en lugar de cualquier cosa que contenga un patrón determinado. Imagina que estás buscando una cadena de caracteres que es común como parte de una palabra, pero necesitas que esté separada. Por ejemplo, la palabra «eso». Obviamente, no habra muchas veces que Realmente quiere buscar un patrón como «eso», pero prueba el punto.
cat textfile.txt | grep -w it
En lugar de imprimir cada palabra que contiene 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 estás interesado en investigar todo Grep puede hacer, correr man grep
en un 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: Puntos de interés del script de shell para las coordenadas