14
Unix Essentials Procesamiento de cadenas de Texto Instructor Luis Felipe Londoño Muñoz Centro de Servicios y ges tión empresarial Teleinformática

Procesamiento de cadenas (1)

Embed Size (px)

Citation preview

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