No se han encontrado widgets en la barra lateral
Como usar grep. Comando de búsqueda linux 5

El comando grep es muy útil. busca los ficheros que contienen la cadena especificada y devuelve el nombre del fichero y (si se trata de un fichero de texto) una linea de contexto para dicha cadena. La sintaxis básica de grep es la siguiente:

[code]

grep [opciones] regexp [ficheros]

[/code]

Aquí, regexp es una expresión regular. El comando grep admite un gran numero de opciones. Algunas de las más comunes le permiten modificar el modo en que el programa busca los ficheros:

  • Contar las lineas coincidentes: En lugar de mostrar lineas de contexto grep muestra el numero de lineas que coinciden con el patrón especificado si utiliza las opciones -c o –count
  • Especificar un fichero de entrada como patrón:  Las opciones -f fichero o –file= fichero reciben  un fichero de entrada como patrón,  en vez de tomarlo de la linea de comandos.
  • Ignorar mayúsculas y minúsculas: Puede realizar una búsqueda que no distinga entre mayúsculas y minúsculas en lugar de la búsqueda por defecto empleando las opciones -i o –ignore-case
  • Buscar recursivamente:  Las opciones -r o –recursive buscan en el directorio especificado y en todos los subdirectorios en lugar de buscar sólo en el directorio especificado.
  • Utilizar una expresión regular extendida: El comando grep interpreta por defecto regexp como una expresión regular básica. Para utilizar una expresión regular extendida, puede pasarle las opciones -E o –extended  -regexp. Como alternativa puede llamar a egrep en lugar de grep; esta variante del comando utiliza por defecto las extendidas.

Veamos un ejemplo sencillo de grep que utiliza una expresión regular sin componentes especiales:

[code]

# grep -r eth0 /etc/*

[/code]

Este ejemplo localiza todos los ficheros de /etc que contiene la cadena eht0 (el identificador del primer dispositivo Ethernet). Como el ejemplo incluye la opción -r, la búsqueda es recursiva, por lo que los ficheros de los subdirectorios de /etc se examinan de igual modo que los de éste. Para cada fichero de texto coincidente se imprimirá la linea que contenga la cadena.

Para complicarlo un poco, supongamos que desea ubicar todos los ficheros de /etc que contengan la cadena eth0 o eht1. Puede introducir el siguiente comando, que emplea una expresión entre corchetes para especificar ambos dispositivos:

[code]

grep eth[01] /etc/*

[/code]

Veamos un ejemplo mas complejo aún, que busca todos los ficheros de /etc que contienen twain.example.com o bronto.pangaea.edu como nombre de host y mas adelante en la misma linea, el numero 127. Esta tarea requiere el uso de varias de las funcionalidades de las expresiones regulares. Si lo expresamos empleando la notación de las expresiones regulares extendidas, el comando tendrá este aspecto:

[code]

$ grep -E "(twain.example.com|bronto.pangaea.edu).*127" /etc/*

[/code]

Este comando es un ejemplo de otra funcionalidad que puede necesitar: el entrecomillado. Debido a que la consola utiliza ciertos caracteres par sus propios fines, como la barra vertical y el asterisco, debe entrecomillar determinadas expresiones regulares para que la consola no intente analizar éstas como un comando propio.

Puede utilizar grep junto a comandos que generan una gran cantidad de salida para buscar en ésta el material que le interesa. por ejemplo, supongamos que desea localiza la ID del proceso (PID) de un xterm en ejecución. Puede utilizar un pipe para enviar el resultado da un comando ps a través de grep:

[code]

ps aux | grep xterm

[/code]

El resultado es una lista de todos los procesos en ejecución llamados xterm, junto a sus PID. Incluso puede hacer estos en series, utilizando grep para restringir posteriormente la salida en base a algún otro criterio, lo cual puede ser útil si el paso inicial aun genera demasiada salida.

Fuente:  Linux Profesional Institute Certification. Anaya

Un comentario en «Como usar grep. Comando de búsqueda linux»

Deja una respuesta

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