grep imprime líneas que contienen una coincidencia para un patrón dentro de los archivos.
grep puede usar expresiones regulares y tiene varias opciones para mejorar la calidad de los resultados.
Versión | Fecha de lanzamiento |
---|---|
POSIX.2 | 1992-01-01 |
IEEE Std 1003.1-2001 | 2001-12-06 |
IEEE Std 1003.1, Edición 2004 | 2004-01-01 |
IEEE Std 1003.1, Edición 2013 | 2013-04-19 |
IEEE Std 1003.1, Edición 2016 | 2016-09-30 |
Versión | Fecha de lanzamiento |
---|---|
2005-06-14 | 2005-06-14 |
2005-09-06 | 2005-09-06 |
2012-03-30 | 2012-03-30 |
2012-09-17 | 2012-09-17 |
2013-05-14 | 2013-05-14 |
Versión | Fecha de lanzamiento |
---|---|
2.0 | 1996-10-01 |
2.2 | 1998-04-27 |
2.3 | 1999-02-14 |
2.4.1 | 2000-03-01 |
2.4.2 | 2000-03-09 |
2.4 | 1999-12-03 |
2.5.1 | 2004-10-29 |
2.5.1a | 2004-11-19 |
2.5.3 | 2007-08-02 |
2.5.4 | 2009-02-09 |
2.5 | 2002-03-13 |
2.6.1 | 2010-03-25 |
2.6.2 | 2010-03-29 |
2.6.3 | 2010-04-02 |
2.6 | 2010-03-23 |
2.7 | 2010-09-20 |
2.8 | 2011-05-13 |
2.9 | 2011-06-21 |
2,10 | 2011-11-16 |
2,11 | 2012-03-02 |
2.12 | 2012-04-23 |
2,13 | 2012-07-04 |
2,14 | 2012-08-20 |
2.15 | 2013-10-26 |
2.16 | 2014-01-01 |
2,17 | 2014-02-17 |
2.18 | 2014-02-20 |
2.19 | 2014-05-22 |
2.20 | 2014-06-03 |
2.21 | 2014-11-23 |
2,22 | 2015-11-01 |
2.23 | 2016-02-04 |
2.24 | 2016-03-10 |
2,25 | 2016-04-21 |
2,26 | 2016-10-02 |
2.27 | 2016-12-06 |
2,28 | 2017-02-06 |
Versión | Fecha de lanzamiento |
---|---|
OpenBSD 3.0 | 2001-12-01 |
OpenBSD 3.4 | 2003-11-01 |
OpenBSD 3.5 | 2004-05-01 |
OpenBSD 3.6 | 2004-11-01 |
OpenBSD 3.7 | 2005-05-19 |
OpenBSD 3.8 | 2005-11-01 |
OpenBSD 3.9 | 2006-05-01 |
OpenBSD 4.0 | 2006-11-01 |
OpenBSD 4.1 | 2007-05-01 |
OpenBSD 4.3 | 2008-05-01 |
OpenBSD 4.8 | 2010-11-01 |
OpenBSD 5.0 | 2011-11-01 |
OpenBSD 5.3 | 2013-05-01 |
OpenBSD 5.7 | 2015-05-01 |
OpenBSD 5.8 | 2015-10-18 |
OpenBSD 5.9 | 2016-03-29 |
NetBSD 2.0 | 2004-12-09 |
NetBSD 4.0 | 2007-12-19 |
NetBSD 6.0 | 2012-10-17 |
NetBSD 7.0 | 2015-09-25 |
FreeBSD 9.0 | 2012-01-02 |
FreeBSD 10.0 | 2014-01-16 |
Ejecutando el comando:
grep sam someFile.txt
Cuando someFile.txt
contiene:
fred 14 m foo
sam 68 m bar
christina 83 f baz
bob 22 m qux
Sam 41 m quux
Producirá esta salida:
sam 68 m bar
grep -r 'pattern' <directory path>
Para enumerar también números de línea de coincidencias use la opción -n
grep -rn 'pattern' <directory path>
Para buscar solo archivos con un patrón global particular
grep --include='*.txt' -r 'pattern' <directory path>
Excluir patrones de archivos o directorios
grep -R --exclude=*.log 'pattern' <directory path>
grep -R --exclude={*.log,*.class} 'pattern' <directory path>
grep -R --exclude-dir=tmp 'pattern' <directory path>
grep -R --exclude-dir={tmp,lib} 'pattern' <directory path>
Notas y otras opciones útiles.
<directory path>
se puede omitir si se busca en el directorio actual -R
siguen todos los enlaces simbólicos, a diferencia de -r
que sigue enlaces simbólicos solo si están en la línea de comando -l
para listar solo archivos coincidentes -h
para suprimir el prefijo de nombre de archivo --color=auto
para resaltar patrones combinados -m <num>
para especificar el número máximo de coincidencias para cada entrada de archivo find <directory path> -type f -exec grep -l 'pattern' {} +
-n
, -l
, etc. según sea necesario {} +
no es compatible, use {} \;
en lugar find
como cómo incluir / excluir tipos de archivos, directorios, etc. Dada una muestra de archivo llamada lista de películas.
Troy
Gladiator
Robin Hood
King Arthur
BraveHeart
The Last Samurai
Grep normal devuelve
grep "Gladiator" movieslist
Gladiator
Ahora, usando grep para imprimir las líneas de abajo o arriba del archivo.
Para imprimir la linea de abajo
grep -A 1 Gladiator movieslist
Gladiator
Robin Hood
Para imprimir la linea anterior
grep -B 1 Gladiator movieslist
Troy
Gladiator
Para imprimir ambos
grep -C 1 Gladiator movieslist
Troy
Gladiator
Robin Hood
Dada una sample
archivo:
hello
Hello
HELLO_there
Un grep
normal para "hola" devuelve:
$ grep "hello" sample
hello
Usar -i
permite ignorar mayúsculas y minúsculas y hacer coincidir cualquier "hola"
$ grep -i "hello" sample
hello
Hello
HELLO_there
Dada una sample
archivo:
hello world
ahello here
hello_there
Un grep
normal para "hola" devuelve:
$ grep hello sample
hello world
ahello here
hello_there
El uso de -w
permite seleccionar aquellas líneas que contienen coincidencias que forman palabras completas:
$ grep -w hello sample
hello world
echo "Prints only the matching part of the lines" | grep -o "matching"
# prints matching