Está en la página 1de 5

Captulo 10 Expresiones regulares

? * {n} + {,m} {n,m} pablo ^pablo pablo$ ^pablo$ ni[oa] ni[^aeiou]o ga o ^ $ ^! ^[^ ] nos* "nio# "*nio#* [a$%][a$%]* [a$%]+ [^0$&'$(] [a$%'$(] ['x)] nio*nia*na+a ,s*arb-usto ga.t[oa] !/ga o!0 !/nio!0 o!{1,!} !t !r !n !a !e !2 !3 !x El elemento precedente es opcional y debe coincidir al menos una vez. El elemento precedente debe coincidir cero o ms veces. El elemento precedente debe coincidir exactamente n veces. El elemento precedente debe coincidir una o ms veces. El elemento precedente es opcional y debe coincidir al menos m veces. El elemento precedente debe coincidir al menos n veces pero no ms de m veces. La cadena pablo. La cadena pablo al principio de la linea. La cadena pablo al final de la linea. La cadena pablo formando una nica lnea. La cadena nio o nia. La tercera letra no es una vocal minscula. La tercera letra es cualquier carcter. Cualquier lnea que contenga caracteres. Cualquier lnea que comienza por punto. Cualquier lnea que no comienza por punto. nio! nios! nioss! niosss! etc nio entre comillas dobles. nio con o sin comillas dobles. una o ms letras minsculas. una o ms letras minsculas "s#lo vlido en algunas aplicaciones$. cualquier carcter que no sea ni nmero ni letra mayscula. cualquier letra sea mayscula o minscula. cualquier carcter que sea %! x o &. una de las tres palabras. la palabra susto o arbusto. gato! gata! gasto! gaita! etc. cualquier palabra que empiece por ga. cualquier palabra que termine por o la palabra nio dos o ms oes en una misma fila. 'epresenta un tabulador. 'epresenta el (retorno de carro( o (regreso al inicio( o sea el lugar en que la lnea vuelve a iniciar. 'epresenta la (nueva lnea( el carcter por medio del cual una lnea da inicio. 'epresenta una (campana( o (beep( que se produce al imprimir este carcter. 'epresenta la tecla (Esc( o (Escape( 'epresenta un salto de pgina. 'epresenta un tabulador vertical. )e utiliza para representar caracteres %)C** o %+)* si conoce su

!u

!+ !4 !s !5 !6 !7 !' !( !b !8

c#digo. ,e esta forma! si se busca el smbolo de derec-os de autor y la fuente en la que se busca utiliza el con.unto de caracteres Latin/0 es posible encontrarlo utilizando (1x%2(. )e utiliza para representar caracteres 3nicode si se conoce su c#digo. (1u44%5( representa el smbolo de centavos. +o todos los motores de Expresiones 'egulares soportan 3nicode. El .+et 6rame7or8 lo -ace! pero el Edit9ad 9ro no! por e.emplo. 'epresenta un dgito del 4 al 2. 'epresenta cualquier carcter alfanum:rico. 'epresenta un espacio en blanco. 'epresenta cualquier carcter que no sea un dgito del 4 al 2. 'epresenta cualquier carcter no alfanum:rico. 'epresenta cualquier carcter que no sea un espacio en blanco. 'epresenta el inicio de la cadena. +o un carcter sino una posici#n. 'epresenta el final de la cadena. +o un carcter sino una posici#n. ;arca el inicio y el final de una palabra. ;arca la posici#n entre dos caracteres alfanum:ricos o dos no/ alfanum:ricos.

8us9ar una expresion regular


El comando grep toma una expresin regular de la lnea de comandos, lee la entrada estndar o una lista de archivos, e imprime las lneas que contengan coincidencias para la expresin regular. Opciones : $c $e :';<=> $2 '<C?@AB $? $r $i $4 $3 $l $9 ;odificar la salida normal del programa! en lugar de imprimir por salida estndar las lneas coincidentes! imprime la cantidad de lneas que coincidieron en cada arc-ivo. 3sar PATRN como el patr#n de bsqueda! muy til para proteger aquellos patrones de bsqueda que comienzan con el signo </=. >btener los patrones del arc-ivo ARCHIVO *mprimir el nombre del arc-ivo con cada coincidencia. ?uscar recursivamente dentro de todos los subdirectorios del directorio actual. ?uscar maysculas o minsculas. ?uscar palabra completa. ?uscar lo contrario. ;ostrar solo los arc-ivos que contenga la palabra buscada. Contar la cantidad de ocurrencia.

Ejemplo : # grep 'root' etc pass!d # grep "i 'root' etc pass!d # grep "i! 'root' etc pass!d # grep "v 'root' etc pass!d # grep "l 'root' etc # $ more

# grep "c 'root' etc # $ more %i queremos que tenga color la &'squeda reali(amos la siguiente exportacin : # export )*E+,O+-.O/%0'""color0auto' )*E+,1O2O*0'34456'

Co+i2i9ar ar9Di3os, bus9ar, et9


El comando se+ nos permite, de una 7orma cmoda, &orrar lneas, registros o sustituir cadenas de caracteres dentro de las lneas, etc. Opciones : $n, --quiet, --silent $e guin, $$expresionEguin $2 fichero-guin, $$2ileEfichero-guin $$2ollo4$sFmlinGs $i[SUFIJO], $$in$ pla9e[=SUFIJO] $l >, $$line$lengtDEN $$posix $r, $$regexp$exten+e+ $s, $$separate $u, $$unbu22ere+ $$Delp $$3ersion 1omandos : d i s p !+ > F Ejemplo : # cp etc pass!d . # sed '3d' pass!d $ more # sed '3,8d' pass!d $ more # sed '3i 9ola :undo' pass!d $ more # sed 's root pepe ' pass!d $ more # sed "n '3,;p' pass!d ?orrar linea. *nsertar. )ustituir. Listar. ;as de una expresi#n. 6uerza la lectura de la siguiente lnea en la iteraci#n actual. )ustituir. )uprime la muestra automtica del espacio de patrones. %grega el gui#n a la lista de #rdenes para e.ecutar. %grega el contenido del fic-ero gui#n a la lista de #rdenes para e.ecutar. )elecciona solamente una columna para mostrar. Edita fic-eros en el lugar "crea un respaldo si se da una extensi#n$. Especifica la longitud de corte de lnea deseado para la orden @lA. ,esactiva todas las extensiones de B+3. 3tiliza expresiones regulares extendidas en el gui#n. Considera los fic-eros como separados en lugar de un solo flu.o! largo y continuo. Carga cantidades mnimas de datos de los fic-eros de entrada y vaca los almacenamientos temporales de salida con ms frecuencia. %yuda. Cersion.

# sed "n ' root p' pass!d o # grep 'root' pass!d <orra desde root hasta nobo+F inclusive. # sed ' root , no&od= d' pass!d %i queremos o&tener un listado slo de los directorios >las 7ilas que comien(an con la letra ?d?@. +odramos utili(ar el sed para &orrar las entradas que no comien(an con esa letra: # ls "l $ sed ' Ad Bd' 1omo vemos el sm&olo de exclamacin CH# detrs de la expresin regular niega la condicin. De&era leerse como &orrar todas las lneas que no comiencen con la letra '+' Otra 7orma : # ls "l $ sed ' Ad p' %ustituir los valores 3EF por ;8G: # echo C3EFH $ sed '= I3EFJ I;8GJ ' ;8G %acar los ta&uladores de un archivo = reempla(arlo por un espacio : # vi texto.txt 9ola :undo B BBBB

# cat texto.txt $ sed 's KtKL g' %acar los mas de un espacio de un archivo = reempla(arlo por un espacio : # vi texto.txt 9ola :undo B BBBB

# cat texto.txt $ sed 's KL g' +rocesando varias lineas # vi agenda.txt *egistro: 3 /om&re: Mni&al -ele7ono: GE3"EEN *egistro: E

/om&re: 9ector -ele7ono: 8GE"E;8 *egistro: F /om&re: +a&lo -ele7ono: GEE"F8; O queremos o&tener lo siguiente : 35Mni&al5GE3"EEN E59ector58GE"E;8 F5+a&lo5GEE"F8; Pna solucin es poder leer de a una lnea a la ve(. Este pro&lema se resuelve con el comando ">#, que 7uer(a la lectura de la siguiente lnea en la iteracin actual. # sed '/5/5/5s Kn 5 g5s A*egistro: K>.#K@5/om&re: K>.#K@5-ele7ono: K>.#K@5Q K35KE5KF ' agenda.txt

%on F lneas >/@. Rue reemplace el retorno de carro "!n# por un "I# &u77er 0 ?*egistro: 35/om&re: Mni&al5-ele7ono: GE3"EEN5? %acar las pala&ras "<egistroJ #, #>ombreJ #, ";ele2onoJ # = el punto = coma de la linea. 2os parSntesis !, *!- representa a cada valor !1, !1 = !K.

También podría gustarte