You are on page 1of 14

Unix Essentials

Procesamiento de cadenas de Texto

Instructor
Luis Felipe Londoño Muñoz
Centro de Servicios y gestión empresarial
Teleinformática
FGREP, GREP Y EGREP
• fgrep
El comando fgrep está diseñado para ser un grep "rápido" .
El comando fgrep no admite expresiones regulares, sino
que interpreta literalmente cada patrón de búsqueda
especificado.
• grep
El comando grep interpreta cada patrón usando la sintaxis
original de las expresiones regulares.
• egrep
El comando egrep interpreta cada patrón usando La
sintaxis de expresiones regulares extendidas.
Algunas Opciones del comando GREP

Opción Effect
-c Cuenta las líneas en las que aparece la coincidencia
Use expression as a search pattern. (Helpful for specifying
-e expression
several alternate patterns.)
-i Busca ignorando mayúsculas/minúsculas
Imprime únicamente los nombres de archivos en los que
-l
aparece la coincidencia.
-n Incluye los números de línea
-r Busca recursivamente en todos los archivos
-w Busca una coincidencia exacta con el patrón de búsqueda
Ejemplos
[root@myserv Server]# grep boxers /usr/share/dict/words
boxers
[root@myserv Server]# grep -l boxers /usr/share/dict/words
/usr/share/dict/words
[root@myserv Server]# grep -n boxers /usr/share/dict/words
50081:boxers
[root@myserv Server]# grep -c boxers /usr/share/dict/words
1
Ejemplos
[root@myserv Server]# grep ION /usr/share/dict/words
IONL
[root@myserv Server]# grep -i ION /usr/share/dict/words
abacination
abaction
abalation En este segundo ejemplo se buscan
abalienation palabras o partes de palabras que
abannition contienen ion sin importar mayúsculas
IONL o minúsculas
Regular Expression Character Classes
Expression Character Class ASCII equivalent range
[:alnum:] alphanumeric A-Za-z0-9
[:alpha:] alphabet character A-Za-z

[:blank:] space or tab  


[:digit:] numeric digit 0-9
[:lower:] lowercase letters a-z

printable characters, excluding


[:punct:]  
spaces and alphanumerics

[:space:] whitespace character  

[:upper:] uppercase letter A-Z


Ejemplos
[elvis@station]$ grep '[A-Z]' /usr/share/dict/words
[elvis@station]$ grep '[[:upper:]]' /usr/share/dict/words

NOTA: Con el comando de abajo se logran encontrar las coicidencias


que contienen por lo menos una letra mayúscula
Búsquedas con anclas
EJEMPLOS
student@station student]$ egrep ion /usr/share/dict/words
abbreviation
abbreviations NOTA: listas de todas las líneas que
abduction contienen las letras "ion" en
abductions cualquier parte de la línea
aberration
student@station student]$egrep 'ion$' /usr/share/dict/words
abbreviation
abduction search only lists lines which end
aberration in "ion"
Agrupación de expresiones regulares
• Los paréntesis son usados para recoger
especificadores patrones de expresiones
regulares en grupos.
• Supongamos que tenemos una expresión
regular para detectar cualquier coincidencia
"foo" o “foobar“
• Se podría usar la siguiente expresión "foo|
foobar"
Agrupación de expresiones regulares
Ejemplos

[student@station student]$ egrep '[aeiou]{4}' /usr/share/dict/words


aqueous
dequeue
dequeued
Líneas que contienen 4 vocales
dequeues
dequeuing
consecutivas
Agrupación de expresiones regulares
Ejemplos
[student@station student]$ egrep '(o|e){2}.*ee' /usr/share/dict/words
bookkeeper
bookkeepers finds words that contain a
bookkeeping double "o" or a double "e",
Chattahoochee followed (somewhere) by a
doorkeeper double "e".
freewheel
Greentree
Agrupación de expresiones regulares
Ejemplos
[student@station student]$ egrep '(o|e){2}.*ee' /usr/share/dict/words
bookkeeper
bookkeepers finds words that contain a
bookkeeping double "o" or a double "e",
Chattahoochee followed (somewhere) by a
doorkeeper double "e".
freewheel
Greentree
Resumen de expresiones regulares
Character Role Regex Syntax Interpretation
. wildcard basica Coincide con un caracter caulquiera
Coincide con uno de cualquier caracter
[abc], [a-z] inclusion range basica incluido en el rango.
[^abc], [^a-z] exclusion range basica Coincide con uno de cualquier caracter
NO incluido en el rango.
? modifier extendida match 0 or 1 of preceding term
* modifier basica match 0 or more of preceding term
+ modifier extendida match 1 or more of preceding term
match between m and n (inclusively)
{m,n} modifier extendida
occurrences of the preceding term
{n} modifier extendida match exactly n occurrences of the
preceding term
^ anchor basica mark beginning of a line
Resumen de expresiones regulares
Character Role Regex Syntax Interpretation
$ Ancla basic mark end of a line
allow modifiers to act on a group of
(...) grouping basic
characters
(... | ...) grouping extended allow alternate patterns to be specified

You might also like