miércoles, 22 de agosto de 2012

Comando grep

grep, Buscar patrón en los Archivos

# cd /etc
# grep utn *                                                                   ß Busca utn en todos los archivos
# grep ‘Una oración’ archi1 archi2                    ß busca una oración en archi1 y archi2
# grep ‘palabra1 palabra2 palabra3’ *          ß busca una oración en archi1 y archi2
# grep ‘doc[135]’ *
# grep ‘doc[1-3]’ *
# grep -r -n 'Walden Pond' *                                 ß Realiza una busqueda recurvia, e indica el numero de linea en la que se encuqntra lña cadena buscada

Mostrar las lineas de varias no coincidencias (uso del argumento -v y los argumentos -e)
# grep -v -e "a" -e "b" -e "c" archivo_demo3

Para buscar todas las líneas que comienzan por «Ahora» y terminan con «siempre» seguido de una cantidad arbitraria de espacio en blanco (nótese que el carácter ^ representa el inicio de la línea, así como $ representa el final):

# grep '^Ahora.*siempre *$'


Buscar expresiones regulares
$ grep "esta.*linea" archivo_demo1

Esta es la primer linea en minusculas de este archivo
Y esta es la ultima linea

Buscar palabras completas (excluir subcadenas) (uso del argumento -w)
$ grep -iw "de" archivo_demo1


Mostrar las lineas de varias no coincidencias (uso del argumento -v y los argumentos -e)
$ grep -v -e "a" -e "b" -e "c" archivo_demo3

Resaltar los resultados
Es necesario setear las variables de entorno GREP_OPTIONS y GREP_COLOR
$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'

I
Omite las diferencias entre mayúsculas o minúsculas
L
Visualiza los nombres de los archivos que contienen el patrón de búsqueda
N
Produce como salida el numero de línea junto con el texto de aquellas líneas que contengan el patrón de la búsqueda
V
Produce como salida todas las líneas que no contengan el patrón de la búsqueda

# grep ‘doc[1-3]’ * -n

Expresiones regulares

^
Inicio de línea
^consiste
consiste en un flujo
ls –l | grep ‘^d’  (para desplegar solo directorios)
$
Final de línea
editor$
Se puede usar un editor
ls –l | grep ‘^l’   (Para desplegar solo los enlaces )
.
Cualquier carácter individual
p.z
pobra ser ‘paz’, ‘pez’, ‘p+z’

*
Caracteres repetidos
c*
c cc ccc ccc ccccc

[]
Clases
doc[A-Za-z]
doc[adf]
# grep ‘doc[1-3]’ *

.*ti
Desde el principio de la línea hasta ti
Te saludo a ti y a ellos les digo adiós
ti.*
Desde el fin de la líneahasta ti
Te saludo a ti y a ellos les digo adiós
u.*g
Todo el texto entre u y g
Te saludo a ti y a ellos les digo adiós

1 comentario:

  1. Para expresiones regulares tambien hay egrep, y para consultar archivos comprimidos la opcióon indicada es zgrep. Linux nos da de todo, incluso lo que ya tenemos, pero en menos pasos.

    ResponderEliminar

Especialistas en sistemas Operativos Linux

Sistematizan a empresas Sistematización a empresas, Agilidad, Seguridad y confianza