Grep es un pequeño programa de Unix para encontrar patrones coincidentes. Comenzó como un programa Unix, pero 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 mirar a través de los archivos directamente. Grep es increíblemente útil, especialmente para buscar en directorios desde la línea de comandos.

Grep ls

Con eso, por qué no intentar uno de los usos más comunes de Grep, encontrar un archivo en un directorio. Busca en tu carpeta «~/Downloads» cualquier imagen _resultado.jpg».

ls ~/Downloads |grep _resultado.jpg

Grep los listará todos y resaltará la parte «_resultado.jpg» ya que es lo que has buscado.

grep grep en este artículo

Puedes canalizar la salida (con el comando «|») de casi cualquier comando en grep. Si tienes un archivo de texto plano por ahí, catéalo y pasa el resultado a Grep para encontrar una palabra específica.

cat archivo.txt |grep palabra

Grep imprimirá todas las líneas del archivo que contengan la palabra que le has dicho que busque.

Olvídate de las mayúsculas y minúsculas

yo dawg i heard you like grep

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 cuando se busca algo. Grep tiene una bandera para eliminar el problema. Añade la bandera -i a tu búsqueda, y Grep ignorará las mayúsculas y minúsculas.

ls ~/Downloads |grep-i Ubuntu

Buscar en un archivo

grep en un archivo

No sería muy conveniente necesitar cat cada vez que quiera buscar en un archivo. En realidad, no es así. Grep puede buscar por sí mismo en los archivos. Pásale la ruta del archivo y Grep hará el resto.

grep-i palabra /ruta/al/archivo.txt

Búsquedas recursivas

Grep recursivo

Grep puede buscar en más de un archivo o directorio al mismo tiempo. Tenga en cuenta que si busca nombres de archivos, Grep también buscará en ellos por defecto. La bandera -r le dice a Grep que busque recursivamente.

ls ~/Downloads |grep-r .deb

También puede combinar esta opción con otras banderas. Puede incluir la bandera -I cuando haga búsquedas recursivas para evitar que Grep busque en archivos binarios.

ls ~/Downloads |grep-iIr .deb

Buscar lo contrario

También puede decirle a Grep que busque todo lo que no contenga el patrón especificado. Esto sería bueno en casos en los que necesitas encontrar un error o tienes un directorio con montones de 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 determinado patrón. Imagina que buscas una cadena de caracteres que es común como parte de una palabra, pero que necesitas que esté separada. Por ejemplo, la palabra «eso». Obviamente, no habrá muchas veces que quieras buscar un patrón como «eso», pero esto demuestra el punto.

cat archivo_de_texto.txt |grep-w ello

En lugar de imprimir cada palabra que contiene el patrón, Grep sólo imprimirá la palabra por sí misma. Hace lo mismo para líneas enteras con la bandera -x, así que si estás buscando una frase o una sola línea en un archivo de configuración, eso puede ser realmente útil.

RELACIONADO:  Cómo elegir el mejor sistema de archivos Linux para su SSD

Si estás interesado en investigar todo lo que Grep puede hacer, ejecuta man grep en una terminal para obtener la documentación completa. Este artículo cubrió lo básico y todo lo que normalmente necesitarás de esta poderosa herramienta. Comparte con nosotros si conoces algún uso potente del comando Grep.

Crédito de la imagen: Puntos de interés de los scripts de shell para las coordenadas