SlideShare una empresa de Scribd logo
1 de 8
Sistemas Operativos Ciclo 02/2014 Sección: 01
Fecha Inicio:30/05/2017 Fecha de Entrega: 06/06/2017
Nombre: Carnet:
Entrega en el mismo formato puede agregar capturas de pantalla,
valoración para parcial 5. Solose tomara encuenta a los que
asistan a la práctica.
Forma de entrega:Digital al correo
Institucional.
PRÁCTICA 10
MANDATOS DE TRATAMIENTO DE CADENAS. CREACIÓN DE SCRIPTS DE SHELL SENCILLOS
Comoya hemosexplicadoenprácticasanteriores,losficheros de texto son de gran importancia dentro de los SO
basadosenGNU/Linux.Porejemplo, la mayor parte de la información del sistema es almacenada en ficheros de
texto. Eso ha hecho que diversos mandatos que permiten buscar cadenas de texto (como grep o egrep), o
modificar flujos de texto (como sed o awk) sean de uso muy extendido entre los usuarios de Linux.
Para poderhacer esasbúsquedasomodificacionesde texto,se utilizan las expresiones regulares. Una expresión
regularesuna formade describiruna(omúltiples) cadenasde texto.Lacadenade textoque estamosbuscandose
debe corresponderconesaexpresiónregular.Laexpresiónregular“alumno”se puede entender como una forma
de describir la cadena “alumno” (por eso cuando hacíamos grep “alumno” /etc/passwd obteníamos todas las
líneasque contienenlacadena“alumno”).Laexpresiónregular“p*”representa “el carácter p, cero o más veces”.
Si ejecutas grep h* /etc/passwd obtendrás como resultado todas las líneas del fichero (ya que todas contienen
cero o más veces la letra “h”).
Por tanto,un buenmanejode lasexpresionesregularesnosvaa permitirhacer búsquedas de forma más rápida o
precisa. En la página http://www.panix.com/~elflord/unix/grep.html (en inglés) puedes encontrar un buen
tutorial para aprender expresiones regulares. La página del manual de grep (man grep) en su sección “Regular
Expressions” también contiene información de utilidad. Una versión extendida de grep es el mandato egrep
(extendedgrep).Se caracteriza porque su lenguaje de expresiones regulares es más expresivo que el propio de
“grep”.
Expresiones regulares de grep y egrep (por orden decreciente de precedencia)
c cualquier carácter no especial c concuerda consigo mismo
c cancela cualquier significado especial del carácter c
^ inicio de línea
$ final de línea
b marca inicio o final de palabra
. cualquier carácter individual
[…] cualquiera de los caracteres en …; los rangos tipo a-z son legales
[^…] cualquier carácter individual que no se encuentre en …; los rangos valen
n lo que concordó con el n-ésimo (…) (grep solamente)
r* cero o más ocurrencias de r
r+ una o más ocurrencias de r (egrep solamente)
r? cero o una ocurrencia de r (egrep solamente)
r{n} n ocurrencias de r (egrep solamente)
r{n,} n o más ocurrencias de r (egrep solamente)
r{,m} de 0 a m ocurrencias de r (egrep solamente)
r{n,m} de n a m ocurrencias de r (egrep solamente)
r1r2 r1 seguida de r2
r1|r2 r1 o r2 (egrep solamente)
(r) expresión regular marcada r (grep solamente); puede ser una expresión
(r) regular anidada (egrep solamente); puede anidarse
En la tabla anterior mostramos algunas de las expresiones regulares que se usarán a lo largo de la práctica.
1. A partir de la información que has leído en las páginas anteriores sobre expresiones regulares y de la tabla
facilitada, trata de completar los ejercicios sobre grep que puedes encontrar en
http://lem.eui.upm.es/tgrep.html
El ficheroLa Prehistoria, estae Wordpara facilitarlapracticapuedes pasarlo notpad, que puedes encontrar en el
archivo adjunto con la practica 10, en tu correo y completa las siguientes búsquedas.
2. Muestra todas las líneas que contengan la cadena “España”.
($grep “España” historia)
Recuperael mandatoanterior y por medio de una tubería y de “wc” comprueba que la palabra “España” aparece
en 22 líneas.
3. Muestra todas las líneas que contengan primero la cadena “España” y luego la cadena “guerra”.
($grep “España.*guerra” historia)
Recuperael mandatoanteriorypor mediode una tuberíay de “wc” comprueba que la expresión regular aparece
solo en 1 línea.
4. Muestra las líneas que contengan primero la cadena “guerra” y luego la cadena “España”.
Por medio de una tubería y “wc” comprueba que aparece en 2 líneas.
5. Muestra todas las líneas que contengan las cadenas “Francia” o “Italia” (puedes utilizar egrep).
Por medio de una tubería y “wc” comprueba que aparece en 6 líneas.
6. Muestra las líneas que contengan ambas cadenas “España” y “guerra” en cualquier orden (puedes usar
tuberías).
Por medio de una tubería y “wc” comprueba que aparece en 3 líneas.
7. Muestra las líneas que contengan la cadena “guerra” pero no “España” (la opción grep –v hace búsquedas
inversas, es decir, todas las líneas que no contengan la expresión regular especificada).
Por medio de una tubería y “wc” comprueba que la expresión buscada aparece en 2 líneas.
8. Muestra las líneasque contenganpalabrasde cinco letras terminadas en “ía” (recuerda que “b” representa el
separador entre palabras).
Por medio de una tubería y “wc” comprueba que aparecen en 2 líneas.
9. Muestra las líneas que contengan números de cuatro cifras (puedes crear intervalos o rangos de valores por
medio de [0-9], o también puedes usar la clase de caracteres
[:digit:], que representa cualquier dígito, es decir, equivale a [0-9]).
Por medio de una tubería y “wc” comprueba que aparecen en 19 líneas.
10. Muestra las líneas que empiecen con “a” (el carácter de principio de línea en expresiones regulares es “^”).
Por medio de una tubería y “wc” comprueba que son 6 líneas.
11. Muestra las líneas que terminen con “s” (el carácter para fin de línea en expresiones regulares es $).
Por medio de una tubería y “wc” comprueba que son 20 líneas.
12. Muestra las líneas que comiencen con la cadena “la”.
Por medio de una tubería y “wc” comprueba que son 5 líneas.
13. Muestra las líneas que terminen con la cadena “as”.
Por medio de una tubería y “wc” comprueba que son 6 líneas.
14. Muestra las líneas que empiecen y terminen con “s”.
Por medio de una tubería y “wc” comprueba ninguna línea cumple el requisito.
15. Muestra las líneas que empiecen con “a” o “A” y terminen con “s” o “S”.
Por medio de una tubería y “wc” comprueba que solo hay una línea así.
16. Muestra las líneas que contengan fechas relativas al siglo XX (usa la clase [[:digit:]]).
Por medio de una tubería y “wc” comprueba que son 12 líneas.
17. Muestra las líneas que contengan alguna palabra de 15 letras (no de más, así que deberás usar “b”; puedes
usar la clase [:alpha:], que es equivalente al rango [a-zA-Z]).
Por medio de una tubería y “wc” comprueba que son 3 líneas (no 6).
18. Muestra el número de líneas que contengan la cadena “y” (utiliza la opción “-c” para contar el número de
líneas, o una tubería y luego “wc -l”).
El resultado debe ser 66.
19. Muestra el número de líneas que contenga la palabra “y” (también al principio o final de línea).
El resultado debe ser 50.
20. Muestra el número de líneas que contenga la cadena “y” dentro de una palabra (de más de una letra).
El resultado debe ser 26.
Otro comandoque tambiénnospermite trabajarconficherosde textoessed(streameditor). El mandato sed nos
va a permitirtomarun ficherode textoymodificarlo,de nuevo por medio de expresiones regulares o por alguna
de sus opcionesmásconocidas.Paraque puedasimaginaruncaso prácticode uso,si quisieras modificar todas las
aparicionesenunfichero“index.html”de laexpresión“Bienvenidoa mi página web” por la expresión “Ésta es mi
página”, podrías hacerlo por medio del mandato:
sed “s/Bienvenido a mi página web/Ésta es mi página/g” index.html > index_copia.html
La potenciade sedhace que su sintaxisseamenosintuitivaque lapropiade grep.Las expresiones regulares van a
seguirsiendoválidas,perohayque ser capaces también de expresar las acciones que llevaremos a cabo sobre el
fichero de texto correspondiente (en grep siempre era mostrar, con sed puede ser mostrar, sustituir, añadir,
eliminar…).
21. Muestra las 8 primeras líneas del fichero historia:
$sed –n “1,8p” historia
La opción –n consigue que las líneas no se muestren duplicadas. La opción
“p” sirve para imprimir el texto seleccionado (de las líneas 1 a 8).
22. Creaun ficherollamado“fichero” que contenga las 20 primeras líneas del fichero “historia”. Comprueba que
realmente tenga 20 líneas (“wc”). Realiza los siguientes ejercicios sobre el mismo, utilizando el mandato sed.
23. Muestra el contenido del fichero (opción p); utiliza la opción –n para que el texto no se muestre duplicado.
24. Muestra las líneas que contengan la cadena “España”:
$sed –n “/España/p” fichero
Comprueba por medio de una tubería que el resultado es 4.
25. Borra las líneascomprendidasentre la 5 y la 10 (igual que mostrar un grupo de líneas pero con la opción “d”).
Si usas la opción –n no verás ninguna de las líneas.
Comprueba que, del fichero original de 20 líneas, el resultado de borrar las líneas entre la 5 y la 10 conti ene 14
líneas (“wc –l”).
26. Borra todas las líneas en blanco (recuerda la expresión regular de principio y fin de línea).
Comprueba por medio de una tubería que el resultado son 17 líneas.
27. Borra todas las líneas que contengan la cadena “en”.
Comprueba con una tubería que el resultado son 11 líneas.
28. Borra todas laslíneasque contenganlascadenas“en” y “el”(trata de encadenarlasdosexpresionesregulares,
sed admite como primer atributo varias expresiones regulares; si no también puedes hacer uso de tuberías).
Comprueba por medio de una tubería que quedan 8 líneas que no contienen las anteriores cadenas.
29. Borra la primera palabra de cada línea. Este mandato lo vamos a hacer por sustitución (s) en lugar de hacerlo
por borrado (d). La sintaxis para sustituir la primera palabra de cada línea por “nada” sería:
$sed “s/^[[:alpha:]]*b//g” fichero
(La “s” indicaque hacemosuna sustitución;entre losdosprimeros “/…/” está la expresión regular que queremos
reemplazar,eneste caso“^[[:alpha:]]*b”;entre el segundoyel tercer“/…/” aparece la expresión por la cual será
reemplazada,eneste casopornada; la“g” final indicaque el cambio debe ser global con respecto a las líneas, es
decir,todas las apariciones de cada línea; si no indicamos nada, sólo se llevará a cabo en la primera aparición de
cada línea.Es importante que retengaslaideade que sed, al igual que grep,pordefecto,actúansobre cada línea).
30. Cambia la primera aparición en cada línea de la letra “a” por “@”.
31. Cambia todas las apariciones de la letra “a” por “@”.
32. Cambia todas las apariciones de la palabra España por Spain.
33. Reemplazatodaslasvocalesde minúsculasamayúsculas(puedesusartuberías,concatenarvariasexpresiones
regulares, la opción “y/caracteres_a_reemplazar/caracteres_reemplazados/”…).
34. Elimina todas la apariciones de la letra “e”.
35. Elimina todas las vocales (mayúsculas, minúsculas, acentuadas o no).
36. Elimina todos los espacios en blanco.
Para terminarlapráctica vamosa haceralgunospequeñosejemplosde “shell scripting”. Hasta ahora hemos visto
cómo usar mandatos en la shell (en el bash) y cómo los mismos se ejecutaban. Ahora vamos a ver una forma
sencilla de escribir programas en la shell (llamados scripts) que se puedan ejecutar sin dificultades.
37. Ejecuta el editor de textos nano. Escribe en el mismo:
clear
echo “Estamos ejecutando un script”
Guarda el anterior texto con nombre: “script.sh”.
Para poder ejecutar el fichero de texto anterior le debemos asignar permisos de ejecución, al menos para el
propietario(recuerdacómolohicimosen prácticas anteriores). Una vez le hayas asignado permiso de ejecución,
para ejecutarlo recuerda que sólo debías hacer:
./script.sh
¿Qué ha sucedido? Se ejecuta el script realizando clear a la pantalla en la cual estamos trabajando
38. Vamosa crear un nuevoscript,de nombre vuelca_datos.sh, que cree un fichero de nombre datos (con touch,
por ejemplo)yque escribaenel mismo(conecho) “Mi nombre es…”, “Estamos en prácticas de SO”. Cámbiale los
permisos y prueba a ejecutarlo. Comprueba que ha hecho lo que esperabas.
39. Recuperael scripten http://www.freeos.com/guides/lsst/ch02sec10.html;omitiendolaslíneasque comienzan
por “$” o por “#” cópialo en un fichero de texto (saludo.sh) y trata de ejecutarlo. Como puedes observar, en los
scripts de la shell podemos utilizar variables declaradas dentro del propio script.
40. Otra opción de los scripts de shell es el paso de parámetros. Le podemos pasar a un script uno o varios
parámetrosa la hora de ejecutarlo(cadaparámetrose denominará,dentro del script, $1, $2, $3…). Copia el script
que puedesencontraren http://www.freeos.com/guides/lsst/ch03sec02.html (omitiendolaslíneasque empiezan
por # o por $) en un fichero de texto mayor_que_cero.sh.
Cámbiale los permisos y ejecútalo como sigue:
$./mayor_que_cero.sh 17
$./mayor_que_cero.sh -45
¿Qué resultado has obtenido en cada uno de los casos? Como puedes observar en
http://www.freeos.com/guides/lsst/ch03sec03.html, la estructura if () {…} else {…} también está admitida.
Modificatu programa“mayor_que_cero.sh”paraque muestre el mensaje “$1numberisnegative”encasode que
el número sea negativo.
Por medio de scripts se programan muchas de las tareas que se ejecutan en Linux. En
http://www.freeos.com/guides/lsst/ch08.html puedesencontrar algunos otros ejemplos de tareas sencillas que
se pueden programar por medio de scripts

Más contenido relacionado

Similar a Practica.10

expresion-regular.pdf
expresion-regular.pdfexpresion-regular.pdf
expresion-regular.pdffispari1
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Daniel Gómez
 
Lo básico sobre strings
Lo básico sobre stringsLo básico sobre strings
Lo básico sobre stringsGoogle
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionandreinagracielarojasadam
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveGabriel Romero
 
Estructuras de decisión o selectivas
Estructuras de decisión o selectivasEstructuras de decisión o selectivas
Estructuras de decisión o selectivasDenisse C
 
30 Php. Cadenas Alfanumericas
30 Php. Cadenas Alfanumericas30 Php. Cadenas Alfanumericas
30 Php. Cadenas AlfanumericasJosé M. Padilla
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesAbrirllave
 
Clase 05-expresiones-regulares
Clase 05-expresiones-regularesClase 05-expresiones-regulares
Clase 05-expresiones-regularesDanielMrquez25
 
RegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesRegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesIsabel Gómez
 

Similar a Practica.10 (20)

expresion-regular.pdf
expresion-regular.pdfexpresion-regular.pdf
expresion-regular.pdf
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)
 
Cadenas mey
Cadenas meyCadenas mey
Cadenas mey
 
Lo básico sobre strings
Lo básico sobre stringsLo básico sobre strings
Lo básico sobre strings
 
Pe15 cadenacaracteres
Pe15 cadenacaracteresPe15 cadenacaracteres
Pe15 cadenacaracteres
 
Guía de ejercicios de manejo de cadena de caracteres
Guía de ejercicios de manejo de cadena de caracteresGuía de ejercicios de manejo de cadena de caracteres
Guía de ejercicios de manejo de cadena de caracteres
 
Librerias de dev c++
Librerias de dev c++Librerias de dev c++
Librerias de dev c++
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
 
Manual de c
Manual de cManual de c
Manual de c
 
Funcion printf
Funcion printfFuncion printf
Funcion printf
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octave
 
Estructuras de decisión o selectivas
Estructuras de decisión o selectivasEstructuras de decisión o selectivas
Estructuras de decisión o selectivas
 
30 Php. Cadenas Alfanumericas
30 Php. Cadenas Alfanumericas30 Php. Cadenas Alfanumericas
30 Php. Cadenas Alfanumericas
 
Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Clase 05-expresiones-regulares
Clase 05-expresiones-regularesClase 05-expresiones-regulares
Clase 05-expresiones-regulares
 
Apunte cadenas
Apunte cadenasApunte cadenas
Apunte cadenas
 
Matlab2
Matlab2Matlab2
Matlab2
 
RegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesRegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones Regulares
 
DATOS LENGUAJE C
DATOS LENGUAJE CDATOS LENGUAJE C
DATOS LENGUAJE C
 

Último

introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesgovovo2388
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfRonaldLozano11
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONJuan Carlos Meza Molina
 
sigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptx
sigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptxsigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptx
sigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptxsutti0808
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdfnicolascastaneda8
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfvladimirpaucarmontes
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upnDayronCernaYupanquiy
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 

Último (20)

introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
 
sigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptx
sigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptxsigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptx
sigof.sisfoh.gob.pe_consulta_hogares_ULE_busqueda_print.php (1).pptx
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upn
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 

Practica.10

  • 1. Sistemas Operativos Ciclo 02/2014 Sección: 01 Fecha Inicio:30/05/2017 Fecha de Entrega: 06/06/2017 Nombre: Carnet: Entrega en el mismo formato puede agregar capturas de pantalla, valoración para parcial 5. Solose tomara encuenta a los que asistan a la práctica. Forma de entrega:Digital al correo Institucional. PRÁCTICA 10 MANDATOS DE TRATAMIENTO DE CADENAS. CREACIÓN DE SCRIPTS DE SHELL SENCILLOS Comoya hemosexplicadoenprácticasanteriores,losficheros de texto son de gran importancia dentro de los SO basadosenGNU/Linux.Porejemplo, la mayor parte de la información del sistema es almacenada en ficheros de texto. Eso ha hecho que diversos mandatos que permiten buscar cadenas de texto (como grep o egrep), o modificar flujos de texto (como sed o awk) sean de uso muy extendido entre los usuarios de Linux. Para poderhacer esasbúsquedasomodificacionesde texto,se utilizan las expresiones regulares. Una expresión regularesuna formade describiruna(omúltiples) cadenasde texto.Lacadenade textoque estamosbuscandose debe corresponderconesaexpresiónregular.Laexpresiónregular“alumno”se puede entender como una forma de describir la cadena “alumno” (por eso cuando hacíamos grep “alumno” /etc/passwd obteníamos todas las líneasque contienenlacadena“alumno”).Laexpresiónregular“p*”representa “el carácter p, cero o más veces”. Si ejecutas grep h* /etc/passwd obtendrás como resultado todas las líneas del fichero (ya que todas contienen cero o más veces la letra “h”). Por tanto,un buenmanejode lasexpresionesregularesnosvaa permitirhacer búsquedas de forma más rápida o precisa. En la página http://www.panix.com/~elflord/unix/grep.html (en inglés) puedes encontrar un buen tutorial para aprender expresiones regulares. La página del manual de grep (man grep) en su sección “Regular Expressions” también contiene información de utilidad. Una versión extendida de grep es el mandato egrep (extendedgrep).Se caracteriza porque su lenguaje de expresiones regulares es más expresivo que el propio de “grep”. Expresiones regulares de grep y egrep (por orden decreciente de precedencia) c cualquier carácter no especial c concuerda consigo mismo c cancela cualquier significado especial del carácter c ^ inicio de línea $ final de línea b marca inicio o final de palabra . cualquier carácter individual […] cualquiera de los caracteres en …; los rangos tipo a-z son legales [^…] cualquier carácter individual que no se encuentre en …; los rangos valen n lo que concordó con el n-ésimo (…) (grep solamente) r* cero o más ocurrencias de r r+ una o más ocurrencias de r (egrep solamente) r? cero o una ocurrencia de r (egrep solamente) r{n} n ocurrencias de r (egrep solamente)
  • 2. r{n,} n o más ocurrencias de r (egrep solamente) r{,m} de 0 a m ocurrencias de r (egrep solamente) r{n,m} de n a m ocurrencias de r (egrep solamente) r1r2 r1 seguida de r2 r1|r2 r1 o r2 (egrep solamente) (r) expresión regular marcada r (grep solamente); puede ser una expresión (r) regular anidada (egrep solamente); puede anidarse En la tabla anterior mostramos algunas de las expresiones regulares que se usarán a lo largo de la práctica. 1. A partir de la información que has leído en las páginas anteriores sobre expresiones regulares y de la tabla facilitada, trata de completar los ejercicios sobre grep que puedes encontrar en http://lem.eui.upm.es/tgrep.html El ficheroLa Prehistoria, estae Wordpara facilitarlapracticapuedes pasarlo notpad, que puedes encontrar en el archivo adjunto con la practica 10, en tu correo y completa las siguientes búsquedas. 2. Muestra todas las líneas que contengan la cadena “España”. ($grep “España” historia) Recuperael mandatoanterior y por medio de una tubería y de “wc” comprueba que la palabra “España” aparece en 22 líneas. 3. Muestra todas las líneas que contengan primero la cadena “España” y luego la cadena “guerra”. ($grep “España.*guerra” historia) Recuperael mandatoanteriorypor mediode una tuberíay de “wc” comprueba que la expresión regular aparece solo en 1 línea. 4. Muestra las líneas que contengan primero la cadena “guerra” y luego la cadena “España”. Por medio de una tubería y “wc” comprueba que aparece en 2 líneas. 5. Muestra todas las líneas que contengan las cadenas “Francia” o “Italia” (puedes utilizar egrep). Por medio de una tubería y “wc” comprueba que aparece en 6 líneas. 6. Muestra las líneas que contengan ambas cadenas “España” y “guerra” en cualquier orden (puedes usar tuberías). Por medio de una tubería y “wc” comprueba que aparece en 3 líneas.
  • 3. 7. Muestra las líneas que contengan la cadena “guerra” pero no “España” (la opción grep –v hace búsquedas inversas, es decir, todas las líneas que no contengan la expresión regular especificada). Por medio de una tubería y “wc” comprueba que la expresión buscada aparece en 2 líneas. 8. Muestra las líneasque contenganpalabrasde cinco letras terminadas en “ía” (recuerda que “b” representa el separador entre palabras). Por medio de una tubería y “wc” comprueba que aparecen en 2 líneas. 9. Muestra las líneas que contengan números de cuatro cifras (puedes crear intervalos o rangos de valores por medio de [0-9], o también puedes usar la clase de caracteres [:digit:], que representa cualquier dígito, es decir, equivale a [0-9]). Por medio de una tubería y “wc” comprueba que aparecen en 19 líneas. 10. Muestra las líneas que empiecen con “a” (el carácter de principio de línea en expresiones regulares es “^”). Por medio de una tubería y “wc” comprueba que son 6 líneas. 11. Muestra las líneas que terminen con “s” (el carácter para fin de línea en expresiones regulares es $). Por medio de una tubería y “wc” comprueba que son 20 líneas.
  • 4. 12. Muestra las líneas que comiencen con la cadena “la”. Por medio de una tubería y “wc” comprueba que son 5 líneas. 13. Muestra las líneas que terminen con la cadena “as”. Por medio de una tubería y “wc” comprueba que son 6 líneas. 14. Muestra las líneas que empiecen y terminen con “s”. Por medio de una tubería y “wc” comprueba ninguna línea cumple el requisito. 15. Muestra las líneas que empiecen con “a” o “A” y terminen con “s” o “S”. Por medio de una tubería y “wc” comprueba que solo hay una línea así. 16. Muestra las líneas que contengan fechas relativas al siglo XX (usa la clase [[:digit:]]). Por medio de una tubería y “wc” comprueba que son 12 líneas. 17. Muestra las líneas que contengan alguna palabra de 15 letras (no de más, así que deberás usar “b”; puedes usar la clase [:alpha:], que es equivalente al rango [a-zA-Z]). Por medio de una tubería y “wc” comprueba que son 3 líneas (no 6). 18. Muestra el número de líneas que contengan la cadena “y” (utiliza la opción “-c” para contar el número de líneas, o una tubería y luego “wc -l”). El resultado debe ser 66.
  • 5. 19. Muestra el número de líneas que contenga la palabra “y” (también al principio o final de línea). El resultado debe ser 50. 20. Muestra el número de líneas que contenga la cadena “y” dentro de una palabra (de más de una letra). El resultado debe ser 26. Otro comandoque tambiénnospermite trabajarconficherosde textoessed(streameditor). El mandato sed nos va a permitirtomarun ficherode textoymodificarlo,de nuevo por medio de expresiones regulares o por alguna de sus opcionesmásconocidas.Paraque puedasimaginaruncaso prácticode uso,si quisieras modificar todas las aparicionesenunfichero“index.html”de laexpresión“Bienvenidoa mi página web” por la expresión “Ésta es mi página”, podrías hacerlo por medio del mandato: sed “s/Bienvenido a mi página web/Ésta es mi página/g” index.html > index_copia.html La potenciade sedhace que su sintaxisseamenosintuitivaque lapropiade grep.Las expresiones regulares van a seguirsiendoválidas,perohayque ser capaces también de expresar las acciones que llevaremos a cabo sobre el fichero de texto correspondiente (en grep siempre era mostrar, con sed puede ser mostrar, sustituir, añadir, eliminar…). 21. Muestra las 8 primeras líneas del fichero historia: $sed –n “1,8p” historia La opción –n consigue que las líneas no se muestren duplicadas. La opción “p” sirve para imprimir el texto seleccionado (de las líneas 1 a 8). 22. Creaun ficherollamado“fichero” que contenga las 20 primeras líneas del fichero “historia”. Comprueba que realmente tenga 20 líneas (“wc”). Realiza los siguientes ejercicios sobre el mismo, utilizando el mandato sed. 23. Muestra el contenido del fichero (opción p); utiliza la opción –n para que el texto no se muestre duplicado. 24. Muestra las líneas que contengan la cadena “España”:
  • 6. $sed –n “/España/p” fichero Comprueba por medio de una tubería que el resultado es 4. 25. Borra las líneascomprendidasentre la 5 y la 10 (igual que mostrar un grupo de líneas pero con la opción “d”). Si usas la opción –n no verás ninguna de las líneas. Comprueba que, del fichero original de 20 líneas, el resultado de borrar las líneas entre la 5 y la 10 conti ene 14 líneas (“wc –l”). 26. Borra todas las líneas en blanco (recuerda la expresión regular de principio y fin de línea). Comprueba por medio de una tubería que el resultado son 17 líneas. 27. Borra todas las líneas que contengan la cadena “en”. Comprueba con una tubería que el resultado son 11 líneas. 28. Borra todas laslíneasque contenganlascadenas“en” y “el”(trata de encadenarlasdosexpresionesregulares, sed admite como primer atributo varias expresiones regulares; si no también puedes hacer uso de tuberías). Comprueba por medio de una tubería que quedan 8 líneas que no contienen las anteriores cadenas. 29. Borra la primera palabra de cada línea. Este mandato lo vamos a hacer por sustitución (s) en lugar de hacerlo por borrado (d). La sintaxis para sustituir la primera palabra de cada línea por “nada” sería: $sed “s/^[[:alpha:]]*b//g” fichero (La “s” indicaque hacemosuna sustitución;entre losdosprimeros “/…/” está la expresión regular que queremos reemplazar,eneste caso“^[[:alpha:]]*b”;entre el segundoyel tercer“/…/” aparece la expresión por la cual será reemplazada,eneste casopornada; la“g” final indicaque el cambio debe ser global con respecto a las líneas, es decir,todas las apariciones de cada línea; si no indicamos nada, sólo se llevará a cabo en la primera aparición de cada línea.Es importante que retengaslaideade que sed, al igual que grep,pordefecto,actúansobre cada línea). 30. Cambia la primera aparición en cada línea de la letra “a” por “@”. 31. Cambia todas las apariciones de la letra “a” por “@”. 32. Cambia todas las apariciones de la palabra España por Spain. 33. Reemplazatodaslasvocalesde minúsculasamayúsculas(puedesusartuberías,concatenarvariasexpresiones regulares, la opción “y/caracteres_a_reemplazar/caracteres_reemplazados/”…).
  • 7. 34. Elimina todas la apariciones de la letra “e”. 35. Elimina todas las vocales (mayúsculas, minúsculas, acentuadas o no). 36. Elimina todos los espacios en blanco. Para terminarlapráctica vamosa haceralgunospequeñosejemplosde “shell scripting”. Hasta ahora hemos visto cómo usar mandatos en la shell (en el bash) y cómo los mismos se ejecutaban. Ahora vamos a ver una forma sencilla de escribir programas en la shell (llamados scripts) que se puedan ejecutar sin dificultades. 37. Ejecuta el editor de textos nano. Escribe en el mismo: clear echo “Estamos ejecutando un script” Guarda el anterior texto con nombre: “script.sh”. Para poder ejecutar el fichero de texto anterior le debemos asignar permisos de ejecución, al menos para el propietario(recuerdacómolohicimosen prácticas anteriores). Una vez le hayas asignado permiso de ejecución, para ejecutarlo recuerda que sólo debías hacer: ./script.sh ¿Qué ha sucedido? Se ejecuta el script realizando clear a la pantalla en la cual estamos trabajando 38. Vamosa crear un nuevoscript,de nombre vuelca_datos.sh, que cree un fichero de nombre datos (con touch, por ejemplo)yque escribaenel mismo(conecho) “Mi nombre es…”, “Estamos en prácticas de SO”. Cámbiale los permisos y prueba a ejecutarlo. Comprueba que ha hecho lo que esperabas. 39. Recuperael scripten http://www.freeos.com/guides/lsst/ch02sec10.html;omitiendolaslíneasque comienzan por “$” o por “#” cópialo en un fichero de texto (saludo.sh) y trata de ejecutarlo. Como puedes observar, en los scripts de la shell podemos utilizar variables declaradas dentro del propio script. 40. Otra opción de los scripts de shell es el paso de parámetros. Le podemos pasar a un script uno o varios parámetrosa la hora de ejecutarlo(cadaparámetrose denominará,dentro del script, $1, $2, $3…). Copia el script que puedesencontraren http://www.freeos.com/guides/lsst/ch03sec02.html (omitiendolaslíneasque empiezan por # o por $) en un fichero de texto mayor_que_cero.sh. Cámbiale los permisos y ejecútalo como sigue: $./mayor_que_cero.sh 17 $./mayor_que_cero.sh -45
  • 8. ¿Qué resultado has obtenido en cada uno de los casos? Como puedes observar en http://www.freeos.com/guides/lsst/ch03sec03.html, la estructura if () {…} else {…} también está admitida. Modificatu programa“mayor_que_cero.sh”paraque muestre el mensaje “$1numberisnegative”encasode que el número sea negativo. Por medio de scripts se programan muchas de las tareas que se ejecutan en Linux. En http://www.freeos.com/guides/lsst/ch08.html puedesencontrar algunos otros ejemplos de tareas sencillas que se pueden programar por medio de scripts