Comandos Linux: grep con ejemplos prácticos y útiles (parte 1)

Quien comienza a utilizar la terminal de forma frecuente se topará con que es necesario encontrar información entre todo el texto que arrojan los diferentes comandos linux que existen, para encontrar «ese» dato que necesitas en particular siempre tienes a la mano un de los comandos mas útiles y es el comando linux grep y aquí te explico con ejemplos prácticos como sacarle todo el jugo a grep en linux.

Comandos Linux: grep

La filosofía Unix plantea que un programa haga una cosa y que la haga bien («Make each program do one thing well») mediante flujos de datos en texto plano como entrada o salida para poder que varios programas interactuen mediante pipes o tuberías y uno de los comandos más utilizado de esta forma es grep.

El comando linux grep permite encontrar líneas de texto que contengan un cadena o patrón dentro de uno o varios archivos y las las imprime. En palabras sencillas muestra las lineas que contienen la cadena o patrón que están en un archivo y que en un principio puede parecer una función demasiado simple y se puede apreciar de poca utilidad, pero no dejes que estas apariencias quiten tu interés en uno de los comandos mas útiles y versátiles que puedes encontrar en Linux.

Si deseas ver los detalles de la sintaxis de este comando recuerda que siempre puedes usar el comando «man grep» y conocer las opciones que tienes disponibles. En forma simple esta es la sintaxis de grep:

grep [opciones] patron [archivo]

Algunas  de las opciones mas útiles y comunes de grep son las siguientes

  • -i ignora la deferencia entre mayúsculas y minúsculas en las búsquedas y las considera equivalentes.
  • -n muestra el texto de la línea y el número de línea dentro del archivo en la que se encontró
  • -c muestra solamente el número de líneas coincidentes
  • -l lista los archivos en donde se han encontrado coincidencias sin mostrar el texto
  • -r permite hacer búsquedas de forma recursiva dentro de los directorios que se encuentran en la ruta de búsqueda.

Ejemplos Básicos del comando linux grep

1 Encontrar una palabra en un archivo

Si tenemos un archivo de texto llamado INSTALL y deseamos buscar la palabra Web podemos ejecutar el comando grep de la siguiente forma:

$ grep Web INSTALL

La salida de grep te mostrará todas las lineas que contenga la cadena de texto «Web» y en mi caso muestra esta salida:

Web browser support:

2 encontrar todas las palabras sin importar mayúsculas o minúsculas

$ grep -i web INSTALL

en mi caso muestra una lista extensa de lineas donde está Web, web o WEB y muestro solo un fragmento de esta salida

- A web server running PHP 5.2.0 or higher, with PCRE....
 Web browser support:
 content of the "web" directory in your webserver's document root. If you
 ...

3 Mostrar cuantas coincidencias se han encontrado

En ocasiones no es necesario leer el texto donde se encuentra la cadena de texto o palabra que buscamos, pero, podemos necesitar saber cuantas veces está aparece en el archivo aquí te muestro un ejemplo de cuantas veces aparece la «web» con las opciones anteriores.

$ grep -c Web INSTALL
 1
 $ grep -c web INSTALL
 5
 $ grep -c -i "web" INSTALL
 6

Este ejemplo muestra claramente que al utilizar la opción -i se consideras las coincidencias sin importar mayúsculas o minúsculas.

4 cuando necesitas saber en cual línea está lo que buscas

Para saber en cual línea está el texto o la palabra que buscas utilizas la opción -n asi:

$ grep -n Web INSTALL
 8:Web browser support:

En esta salida te muestra al inicio del texto «8:» que es el número de la línea en donde está la la palabra «Web» dentro del archivo INSTALL.

5 Encontrar un texto en un listado de archivos

El comando linux grep también te puede ayudar a encontrar un texto que se encuentre en una lista de archivos y te puede indicar en que archivo se ha encontrado, aquí te muestro un ejemplo simple de esta opcion:

$ grep -l you ./*
 ./INSTALL
 ./LICENSE
 ./README

Esto te indica que la palabra «you» se encuentra en los archvios INSTALL, LICENCE y README y si estuvieran dentro de otros directorios te mostraría la ruta usando la opción -r para hacer la búsqueda de forma recursiba en los directorios que se encuentran en la ruta de búsqueda.

Espero que grep te sea de gran utilidad, para mí es uno de los comandos que uso casi a diario por que me permite tener información rápida y sencilla cuando administro un servidor linux. Te recomiendo que también veas el siguiente post para que veas como usar grep con tuberias o pipes.

Te recomiendo el post:  Comandos Linux: grep con ejemplos avanzados (parte 2)

Tu Servidor y Amigo

luis armando medina

Sígueme en Twitter: @larmedina

This entry was posted in Comandos Linux and tagged , , . Bookmark the permalink.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*