13.07.2015 Views

Práctica 15 - Licenciado en Sistemas Computacionales ...

Práctica 15 - Licenciado en Sistemas Computacionales ...

Práctica 15 - Licenciado en Sistemas Computacionales ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorio2. OBJETIVO (COMPETENCIA)El alumno apr<strong>en</strong>derá el funcionami<strong>en</strong>to del mando grep, resaltando su importancia, su relación con lasExpresiones Regulares para buscar datos d<strong>en</strong>tro de archivos y flujos, y su aplicación. Además, realizará ejercicios<strong>en</strong> los que aplique este mando como parte de la solución.3. FUNDAMENTOgrepSintaxis: grep [opciones] [uno o mas archivos]El mando grep busca <strong>en</strong> los archivos de <strong>en</strong>trada por líneas que conti<strong>en</strong><strong>en</strong> líneas similares a las del modelo dado.Cuando <strong>en</strong>cu<strong>en</strong>tra un patrón igual <strong>en</strong> una línea, copia la línea a la salida uniforme (por omisión), o hace cualquierotro tipo de salida que se halla solicitado con opciones.Si bi<strong>en</strong> es cierto que el nombre no es muy intuitivo, tampoco su acrónimo ("G<strong>en</strong>eral Regular Expression Parser")Analizador G<strong>en</strong>eral de Expresiones Regulares. Sin embargo, su uso es simple: Buscar el patrón pasado comoargum<strong>en</strong>to <strong>en</strong> uno o mas archivos. Es decir, su función principal es la de Encontrar las líneas de un archivo queconti<strong>en</strong><strong>en</strong> un patrón determinado. También se utiliza como sinónimo de 'búsqueda manual rápida'.Este mando realiza una búsqueda <strong>en</strong> los archivos (o <strong>en</strong> la <strong>en</strong>trada estándar, si no se especifica ninguno) para<strong>en</strong>contrar líneas que concuerd<strong>en</strong> con patrón. Por defecto, grep imprime <strong>en</strong> pantalla dichas líneas.Las opciones mas frecu<strong>en</strong>tes son las sigui<strong>en</strong>tes:Página 2 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorioEl patrón de búsqueda normalm<strong>en</strong>te es una palabra o una parte de una palabra. También se pued<strong>en</strong> utilizarexpresiones regulares, para realizar búsquedas más flexibles. Una expresión regular puede ser seguida por uno ovarios operadores de repetición, como son los sigui<strong>en</strong>tes:Página 3 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorioPor ejemplo, si se quisiera buscar la ocurr<strong>en</strong>cia de todas las palabras que comi<strong>en</strong>c<strong>en</strong> con "a" minúscula, laejecución del mando sería algo así:$ grep ^[a..z] nombre_del_archivoEjemplos del Uso del mando grep:$ grep "for x=1 to 10" *.pasEn el caso anterior, el mando grep realiza la búsqueda de la expresión for x=1 to 10 d<strong>en</strong>tro de todos los archivoscon ext<strong>en</strong>sión .pas.$ grep -v "" pract5.htmlCon la expresión anterior, el mando grep mostrará todas las líneas del archivo pract5.html que no cont<strong>en</strong>gan laexpresión ''$ grep "hola, *mundo" m<strong>en</strong>u.h main.cLista todas las líneas <strong>en</strong> los archivos m<strong>en</strong>u.h y main.c que conti<strong>en</strong><strong>en</strong> la cad<strong>en</strong>a "hola" seguida por la cad<strong>en</strong>a'mundo', esto es porque ',*' iguala cero o mas caracteres d<strong>en</strong>tro de una línea.$ grep -l "main" *.cLista los nombres de los archivos .c <strong>en</strong> el directorio actual que conti<strong>en</strong>e la cad<strong>en</strong>a "main".$ grep -r "hola" /home/gigiBusca la cad<strong>en</strong>a 'hola' <strong>en</strong> todos los archivos del directorio /home/gigi.$ grep -e "--corte aqui--" *Busca todas las líneas que cont<strong>en</strong>gan la cad<strong>en</strong>a "--corte aqui--". Sin el -e tomaria a "--corte aqui--" como unaposible lista de opciones.Página 4 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorio$ grep -w "hello" *Busca solo por instancias <strong>en</strong> que "hello" es una palabra completa, no <strong>en</strong> las que aparece como parte de otrapalabra, <strong>en</strong>tonces no <strong>en</strong>contraría la palabra "othello".Para un mayor control, pued<strong>en</strong> usarse '\' que localizan las ocurr<strong>en</strong>cias al inicio y al final de palabras. Porejemplo:$ grep "hello\>" *Busca solo por palabras que terminan <strong>en</strong> "hello", asi que <strong>en</strong>cu<strong>en</strong>tra la palabra "othello".$ grep -C 2 "hola" *Imprime dos líneas de contexto por cada vez que <strong>en</strong>cu<strong>en</strong>tre la cad<strong>en</strong>a "hola".$ grep 'pablo' /etc/mold | grep "luis"Imprime todas las líneas que cont<strong>en</strong>gan ambos patrones (pablo y luis).4. PROCEDIMIENTO (DESCRIPCIÓN)A) EQUIPO NECESARIO MATERIAL DE APOYOPágina 5 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorioComputadoras con Linux instaladoB) DESARROLLO DE LA PRÁCTICA1. opia el archivo lista.txt ' programa.cpp de /externos/home/clases/compartido a tu directoriohome.2. opia el archivo passwd del directorio Ietc a tu directorio home.3. Muestra <strong>en</strong> la pantalla todos los alumnos de 'ELECTRICA' que están <strong>en</strong> el archivo lista.txt4. Muestra <strong>en</strong> la pantalla todos los alumnos que no son de la carrera de 'ELECTRICA' delarchivo lista.txt.5. Muestra la versión de grep que estás utilizando.6. Utiliza VI y agrega 2 alumnos mas al archivo lista.txt, escribi<strong>en</strong>do la carrera <strong>en</strong> minúsculas(utiliza las mismascarreras que están <strong>en</strong> el archivo, no inv<strong>en</strong>tes nuevas).7. ¿Cuantos alumnos hay de la carrera de 'INDUSTRIAL'?8. ¿Cuantos alumnos hay de la carrera de 'LSC''?9. ¿Cuantos alumnos hay de la carrera de 'COMPUTACION'?10.¿Cuantos alumnos hay de la carrera de 'ELECTRONICA'?11.¿Cuantos alumnos hay de la carrera de 'CIVIL'?12. K uantos alumnos ha' de la carrera de 8TOPOG A!O8@1E.K uantos alumnos ha' de la carrera de 8"#$A%&$O8@1/.K uantos alumnos ha' de la carrera de 8#'#$T &$A8@<strong>15</strong>. u<strong>en</strong>ta el total de alumnos "ue ha' <strong>en</strong> el archivo lista.txt. K orresponde la cantidad a la sumade todas las carrerasdel paso 1 al 1/@ .16.Muestra <strong>en</strong> la pantalla todas las lineas del archivo lista.txt que t<strong>en</strong>gan el patrón 'mat '. ¿Queapareció <strong>en</strong> la pantalla?Página 6 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorio17. Ahora realiza el paso anterior pero con el patrón 'MAT'18. ¿Que pasa si lo haces de la sigui<strong>en</strong>te forma: grep -i 'mat' lista.txt ?19. Ahora busca el mismo patrón del paso 18, pero <strong>en</strong> los archivos lista.txt, programa.cpp ypasswd simultanéamesin importar si está <strong>en</strong> mayúsculas o minúsculas, y mostrando el número de línea d<strong>en</strong>tro delarchivo donde se <strong>en</strong>contró el patrón.20. Realiza el paso anterior pero sin mostrar los nombres de los archivos <strong>en</strong> cada coincid<strong>en</strong>cia<strong>en</strong>contrada.21. Ahora muestra solo los nombres de los archivos d<strong>en</strong>tro de tu directorio home que cont<strong>en</strong>ganel patrón de búsqueda'MAT'.22. Ahora muestra solo los nombres de los archivos d<strong>en</strong>tro de tu directorio home que nocont<strong>en</strong>gan el patrón de búsqueda 'MAT'.23. Muestra todas las líneas donde aparece el patrón 'ANA' del archivo lista.txt (Observa lo queobti<strong>en</strong>es).24. Muestra todas las líneas donde aparezca el patrón “ANA” como palabra completa, no queeste incluida <strong>en</strong> otra, hazlo sobre el mismo archivo lista.txt25. Muestra las líneas donde aparezca el patrón “LSC” con las E líneas que se <strong>en</strong>cu<strong>en</strong>traninmediatam<strong>en</strong>te después de las que conti<strong>en</strong><strong>en</strong> el patrón.26. Muestra las líneas donde aparezca el patrón “LSC” con las 2 líneas que se <strong>en</strong>cu<strong>en</strong>traninmediatam<strong>en</strong>te antes de las que conti<strong>en</strong><strong>en</strong> el patrón.27. Busca el patrón “CIVIL”, mostrando solo el nombre de los archivos que lo conti<strong>en</strong><strong>en</strong>, <strong>en</strong> elsubdirectorio /etc ' <strong>en</strong> todos los directorios ' archivos cont<strong>en</strong>idos d<strong>en</strong>tro de el.28. Muestra <strong>en</strong> la pantalla las líneas del archivo programa.cpp que cont<strong>en</strong>gan el patrón “clrscr();29.+hora muestra <strong>en</strong> la pantalla las líneas del archivo programa.cpp que cont<strong>en</strong>gan el patrón¨clrscr()¨ como línea completa (esto es, que no haya nada mas <strong>en</strong> la línea).30. Busca muestra todos los archivos de tu directorio home y las líneas que cont<strong>en</strong>gan el patrón“UNIX”Página 7 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorio31. Busca el patrón “INDUSTRIAL” <strong>en</strong> el archivo lista.txt ' manda el resultado a un archivo quese llame industrial.32.- Del archivo industrial selecciona las columnas 1 y 2, esto es el apellido paterno y materno,y mándalos a un archivo nuevo llamado ap_industrial.33. Muestra <strong>en</strong> la pantalla las líneas que coincid<strong>en</strong> con el patrón “MAN” del archivoap_industrial.34. Borra los archivos industrial y ap_industrial.35. Realiza los pasos del 32 al 33 <strong>en</strong> un solo paso y sin crear los archivos industrial 'ap_industrial.36. Muestra las líneas del archivo lista.txt que cont<strong>en</strong>gan el patrón “ES” (observa como seMuestra).37. Ahora muestra las líneas del archivo lista.txt que cont<strong>en</strong>gan el patrón “ES” pero solo al final(por ejemplo: “REYES”).38. Realiza tus propias busquedas utilizando el mando grep.39. Borra los archivos lista.txt programa.cpp y passwd de tu nombre.C) CÁLCULOS Y REPORTE5. RESULTADOS Y CONCLUSIONES6. ANEXOSPágina 8 de 9Código GC-N4-017Revisión 1


Fecha de efectividad: ______________________UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIAFACULTAD DE INGENIERÍA (UNIDAD MEXICALI)DOCUMENTO DEL SISTEMA DE CALIDADFormatos para prácticas de laboratorio7. REFERENCIASPágina 9 de 9Código GC-N4-017Revisión 1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!