Post on 10-Apr-2018
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 1/14
Unix Essentials
Procesamiento de cadenas de Texto
Instructor
Luis Felipe Londoño MuñozCentro de Servicios y gestión empresarial
Teleinformática
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 2/14
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ónde búsqueda especificado.
grepEl comando grep interpreta cada patrón usando lasintaxis original de las expresiones regulares.
egrepEl comando egrep interpreta cada patrón usando Lasintaxis de expresiones regulares extendidas.
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 3/14
Algunas Opciones del comando
GREPOpción Effect
-c Cuenta las líneas en las que aparece la coincidencia
-e expression Use expression as a search pattern. (Helpful for specifyingseveral alternate patterns.)
-i Busca ignorando mayúsculas/minúsculas
-lImprime únicamente los nombres de archivos en los que
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
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 4/14
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
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 5/14
Ejemplos
[root@myserv Server]# grep ION /usr/share/dict/words
IONL
[root@myserv Server]# grep -i ION /usr/share/dict/words
abacination
abaction
abalation
abalienation
abannition
IONL
En este segundo ejemplo se buscan
palabras o partes de palabras que
contienen ion sin importar mayúsculas
o minúsculas
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 6/14
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
[:punct:]printable characters, excluding
spaces and alphanumerics
[:space:] whitespace character
[:upper:] uppercase letter A-Z
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 7/14
[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
Ejemplos
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 8/14
Búsquedas con anclas
EJEMPLOSstudent@station student]$ egrep ion /usr/share/dict/words
abbreviation
abbreviationsabduction
abductions
aberration
student@station student]$egrep 'ion$' /usr/share/dict/wordsabbreviation
abduction
aberration
NOTA: listas de todas las líneas que
contienen las letras "ion" en
cualquier parte de la línea
search only lists lines which
end in "ion"
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 9/14
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 "
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 10/14
Agrupación de expresiones regulares
Ejemplos
[student@station student]$ egrep '[aeiou]{4}' /usr/share/dict/words
aqueous
dequeue
dequeued
dequeues
dequeuing
Líneas que contienen 4 vocales
consecutivas
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 11/14
Agrupación de expresiones regulares
Ejemplos
[student@station student]$ egrep '(o|e){2}.*ee' /usr/share/dict/words
bookkeeper
bookkeepers
bookkeeping
Chattahoochee
doorkeeper
freewheel
Greentree
finds words that contain a
double "o" or a double "e",
followed (somewhere) by a
double "e".
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 12/14
Agrupación de expresiones regulares
Ejemplos
[student@station student]$ egrep '(o|e){2}.*ee' /usr/share/dict/words
bookkeeper
bookkeepers
bookkeeping
Chattahoochee
doorkeeper
freewheel
Greentree
finds words that contain a
double "o" or a double "e",
followed (somewhere) by a
double "e".
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 13/14
Resumen de expresiones regularesCharacter Role Regex Syntax Interpretation
. wildcard basica Coincide con un caracter caulquiera
[abc], [a-z] inclusion range basicaCoincide con uno de cualquier caracter
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
{m,n} modifier extendida match between m and n (inclusively)occurrences of the preceding term
{n} modifier extendidamatch exactly n occurrences of the
preceding term
^ anchor basica mark beginning of a line
8/8/2019 Procesamiento de cadenas (1)
http://slidepdf.com/reader/full/procesamiento-de-cadenas-1 14/14
Resumen de expresiones regularesCharacter Role Regex Syntax Interpretation
$ Ancla basic mark end of a line
(...) grouping basicallow modifiers to act on a group of
characters
(... | ...) grouping extended allow alternate patterns to be specified