Formación informática

Java | Joomla | MySQL

Debian - Tema 8.2.3: búsqueda de patrones

Una tarea muy común en la vida laboral de un administrador es buscar información en el árbol de directorios de Linux. Pero restringiendo los resultados de acuerdo a una serie de criterios: que tengan un patrón en el nombre, con una extensión de archivo… Aquí entra en acción el comando grep.

COMANDO SORT 2Función

El nombre grep viene del acrónimo global regular expression and print, que se puede traducir como expresión regular global y mostrar. Pero su función es sencilla: encontrar un patrón en una lista de archivos. Pueden añadirse varios filtros y/o archivos separados por espacios.

Este comando puede encadenarse a otro para realizar un filtrado de la información obtenida con el comando anterior, por ejemplo del comando ls.

Cuando se introducen caracteres especiales, por ejemplo unas comillas dobles (“”), hay que escribirlas entre comillas simples (‘””’) para que el Shell las interprete correctamente.

Uso de caracteres especiales:

  • El acento circunflejo (^) se coloca delante de la expresión para hacer búsquedas en el comienzo de la palabra.
  • El símbolo del dólar ($) se coloca al final de una expresión para indicar que queremos buscar al final de la palabra.
  • El punto representa cualquier carácter.

Sintaxis

grep –opcion(es) filtro archivo(s)

Listado de opciones

Corta

Larga

Explicación

-c

 

Nos muestra el número de líneas que concuerdan con el filtro.

-e PATRÓN

 

Nos permite especificar varios patrones de búsqueda, protegiendo aquellos que señalemos con un signo menos delante, sin espacio.

-F ARCHIVO

 

Extrae los patrones del archivo que especifiquemos. Los patrones del archivo deben ir uno por línea.

-h

 

Nos imprime el nombre del archivo con cada coincidencia.

-i

--ignore-case

Ignora las distinción entre letras mayúsculas y minúsculas en las comparaciones. Muy útil para evitar errores en los resultados por la escritura de la primera letra en mayúsculas o si todo el nombre está en mayúsculas, por ejemplo.

-l

 

Muestra únicamente los nombres de archivos que cuentan con líneas que concuerdan con el filtro.

-m

--max-count=number

Para la búsqueda después de n coincidencias.

-n

 

Nos dice el número de línea dónde se encuentra el filtro.

-o

 

Nos muestra sólo la parte de la línea que coincide con el patrón.

-r

 

Busca en todos los subdirectorios de forma recursiva.

-s

--no-messages

Suprime todos los mensajes de error.

-v

 

Imprime sólo las líneas que no corresponden al filtro.

-w

 

Considera el filtro como una palabra entera.

…..

 

Los puntos suspensivos representan una longitud de caracteres. En este caso son cinco caracteres, va precedido de acento circunflejo (^) y sucedido del símbolo del dólar ($).

Expresiones regulares

Son las caracteres genéricos utilizados para buscar archivos: *, ?, \, corchetes, $

En el ejemplo siguiente buscamos el nombre de nuestro usuario en los archivos passwd y group del directorio /etc:

josemariatc@curso:~$ grep josemariatc /etc/passwd /etc/group

/etc/passwd:josemariatc:x:1000:1000:Jose Maria Torres Corral,1,911234567,919876543:/home/josemariatc:/bin/bash

/etc/group:cdrom:x:24:josemariatc

/etc/group:floppy:x:25:josemariatc

/etc/group:audio:x:29:josemariatc

/etc/group:dip:x:30:josemariatc

/etc/group:video:x:44:josemariatc

/etc/group:plugdev:x:46:josemariatc

/etc/group:netdev:x:108:josemariatc

/etc/group:bluetooth:x:109:josemariatc

/etc/group:scanner:x:115:saned,josemariatc

/etc/group:josemariatc:x:1000:

 Debian - Tema 8.2.2: ordenación de resultados <- | ->  Debian - Tema 8.2.4: extracción de información desde archivos 
   GNU/Linux - Temario

Escribir un comentario

Aunque los comentarios no expresan la opinión del administrador del sitio web, éste si que tiene una responsabilidad legal sobre lo que aparece. Por lo tanto, habrá una labor de moderación de los mensajes. No se permitirán mensajes ofensivos ni publicidad


Código de seguridad
Refescar

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-Ley 13/2012, de 30 de marzo. Si continúa navegando consideramos que acepta el uso de cookies. . Más información