Búsqueda de sitios web

Hoja de referencia del comando Grep con ejemplos [Descarga gratuita en PDF]


A continuación se muestran algunos casos de uso prácticos y comunes del comando grep. También puede descargar la hoja de referencia para una referencia rápida.

Grep es un potente comando UNIX que le permite buscar dentro del contenido del archivo según una variedad de parámetros. Es especialmente útil cuando estás solucionando problemas o depurando.

El comando grep tiene una gran cantidad de opciones y casos de uso. Probablemente nunca los necesitará ni los utilizará todos. Sin embargo, terminarás usando un puñado de comandos grep la mayor parte del tiempo.

Este artículo enumera los comandos grep más comunes con ejemplos rápidos. El Manual de Linux ya tiene un artículo detallado sobre grep, por lo que no profundizaré aquí. Aquí solo mencionaré las opciones comunes y su explicación.

Es bueno si ya estás familiarizado con el comando grep pero sigues olvidando qué opción hace qué.

Option Command Example Description
i grep -i pattern file Case insensitive search
A grep -A n pattern file Show n lines after the match
B grep -B n pattern file Show n lines before the match
C grep -C n pattern file Show n lines before and after the match
v grep -v pattern file Show lines that do not match
c grep -c pattern file Count number of matching lines
l grep -l pattern file Display only the file names
w grep -w pattern file Match the exact word
e grep -e regex file Match the regex pattern
a grep -a pattern file Search into binary files
r grep -r pattern dir Recursively search into directory

He incluido una hoja de referencia en PDF que puedes descargar, imprimir y guardar en tu escritorio.

Ejemplos rápidos del comando Grep

Probablemente ya sepas que para buscar un texto o patrón particular en un archivo, debes usar grep de esta manera:

grep search_pattern filename

Veamos algunos casos de uso comunes del comando grep.

Búsqueda que no distingue entre mayúsculas y minúsculas

De forma predeterminada, la búsqueda con grep distingue entre mayúsculas y minúsculas. Puede ignorar la coincidencia de casos con la opción -i:

grep -i search_pattern filename

De esta manera, grep devolverá líneas que coincidan tanto con Holmes como con holmes.

Mostrar líneas antes y después de las líneas coincidentes

De forma predeterminada, solo verá las líneas coincidentes. Pero cuando estás solucionando un problema, es útil ver un par de líneas antes y/o después de las líneas coincidentes.

Puede utilizar -A para mostrar líneas después de las coincidentes. Recuerde, A es para Después.

El siguiente comando mostrará las líneas coincidentes junto con las 5 líneas después de la coincidencia.

grep -A 5 search_pattern filename

De manera similar, puede usar la opción -B para mostrar líneas antes de las coincidentes. Recuerde, B es para Antes.

El siguiente comando mostrará 5 líneas antes de las coincidentes junto con las líneas coincidentes.

grep -B 5 search_pattern filename

Mi favorita es la opción -C porque muestra las líneas que están antes y después de las coincidentes. Recuerde, C aquí significa Círculo.

El siguiente comando mostrará 5 líneas antes de la línea coincidente, la línea coincidente y 5 líneas después de la línea coincidente.

grep -C 5 search_pattern filename

Mostrar las líneas que no coinciden

Puede usar grep para mostrar todas las líneas que NO coinciden con el patrón dado. Esta 'coincidencia invertida' se utiliza con la opción -v:

grep -v search_pattern filename

Puede combinar las opciones -i y -v.

Cuente el número de líneas coincidentes

En lugar de mostrar las líneas coincidentes, puede obtener cuántas líneas coinciden con el patrón con la opción -c. Esta es minúscula c.

grep -c search_pattern filename

Puede combinar las opciones -c y -v para obtener el número de líneas que no coinciden con el patrón dado. Por supuesto, puede utilizar la opción -i que no distingue entre mayúsculas y minúsculas.

Mostrar números de línea de líneas coincidentes

Para mostrar los números de línea de las líneas coincidentes, puede utilizar la opción -n.

grep -n search_pattern filename

Puedes hacer lo mismo con la búsqueda invertida.

Buscar en múltiples archivos

Puede proporcionar más de un archivo para que grep lo busque.

grep search_pattern file1 file2

Eso podría funcionar, pero un ejemplo más práctico es buscar un tipo particular de archivos. Por ejemplo, si desea buscar una cadena solo en scripts de shell (archivos que terminan en .sh), puede usar:

grep search_pattern *.sh

Buscar todos los archivos en un directorio de forma recursiva

Puede realizar una búsqueda recursiva con la opción grep -r. Buscará el patrón dado en todos los archivos del directorio actual y sus subdirectorios.

grep -r search_pattern directory_path

Mostrar solo los nombres de los archivos

De forma predeterminada, grep muestra las líneas coincidentes. Si ha ejecutado la búsqueda en varios archivos y solo desea ver qué archivos contienen la cadena, puede usar la opción -l.

grep -l search_pattern files_pattern

Supongamos que desea ver qué archivos Markdown contienen la palabra "manual", puede usar:

grep -l handbook *.md

Buscar solo por palabra completa

De forma predeterminada, grep mostrará cualquier línea que contenga la cadena dada. Puede que no siempre quieras eso. Si busca la palabra "hecho", también mostrará líneas que contienen las palabras "doner" o "abandonado".

Para hacer que grep busque solo la palabra completa, puede usar la opción -w:

grep -w search_string file

De esta manera, si busca la palabra "hecho", solo mostrará líneas que contengan "hecho", no "doner" o "abandonado".

Buscar patrones de expresiones regulares

Puede potenciar su búsqueda utilizando un patrón de expresiones regulares. Hay una opción dedicada -e que permite usar patrones de expresiones regulares y la opción -E que permite usar patrones de expresiones regulares extendidos.

grep -e regex_pattern file

Busca este o aquel patrón

Puede buscar varios patrones en la misma búsqueda grep. Si desea ver las líneas que contienen un patrón u otro, puede utilizar el operador OR |. Sin embargo, debes escapar de este carácter especial de la siguiente manera.

grep 'pattern1\|pattern' filename

Puede utilizar varios patrones con el operador OR.

No existe una opción específica para el operador AND. Puedes usar grep varias veces con redirección de canalización para eso.

Buscar archivos binarios

Grep ignora los archivos binarios de forma predeterminada. Puede hacer que busque en archivos binarios como si fuera un archivo de texto usando la opción -a.

grep -a pattern binary_file

Descargar la hoja de referencia del comando Grep

Puede marcar esta página para consultar rápidamente las opciones y los casos de uso del comando grep.

También puedes descargar esta hoja de referencia grep en formato PDF, imprimirla y guardarla en tu escritorio para echarle un vistazo rápido sin perder tiempo.

Avíseme si tiene algún otro caso de uso común de grep que le gustaría ver en esta página.