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
|
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