iberck
7/2/2017 - 9:38 PM

grep

Busca ocurrencias de texto

Grep command

Se utiliza para buscar ocurrencias de textos dentro de 1 o N archivos

La cadena que se manda a grep es una regexp, si deseamos que no sea tratada como una regex sino como un texto, es necesario enviar el siguiente argumento: --fixed-strings (bandera -F):

grep --fixed-strings 'word-to-search' file

Busca la regexp dentro del archivo:
grep 'word-to-search' file

Buscar recursivamente la regexp indicado dentro de la carpeta actual (y subcarpetas):
grep -R 'Mars orbiter mission' .

Buscar con expresiones regulares (-E = grep extended, también se puede utilizar egrep): Solo funciona con ciertas versiones de grep, en ubuntu 16 no es necesario enviar el argumento -E.

Busca la palabra en el archivo indicado, muestra 15 líneas hacia arriba y 15 hacia abajo de la ocurrencia:
grep -C15 'LIDERAZGOEDO10' msurveyweb.log.zip.log

grep -A15 '[ERROR]' msurveyweb.log.zip.log : 15 líneas después de la ocurrencia

grep -B15 '[ERROR]' msurveyweb.log.zip.log : 15 líneas antes de la ocurrencia

Grep con otros comandos (|)

Se utiliza para buscar ocurrencias de textos dentro de la salida de otro comando

Buscar en la salida de otro comando:
command | grep 'search-pattern'

i: case insensitive, no distingue mayusculas y minúsculas

n: muestra el número de línea en que se encuentra la ocurrencia

c: muestra el número de ocurrencias de la palabra 'command': cat test.txt | grep -c 'command'

https://www.cyberciti.biz/faq/debian-ubuntu-linux-grep-command-tutorial-examples/

Comandos prácticos

grep -Rh "Android SDK" .: (dentro de la carpeta /home/msurvey/rlogs) muestra el Android SDK de cada archivo rlog de msurvey

R: busca recursivamente en la carpeta
h: muestra la ocurrencia pero no el archivo donde se encuentra