Examen Parcial - 75.08. Sistemas Operativos

Cátedra: Osvaldo Clua
Fecha: Segunda oportunidad
Día: 24/05/2005
Tema: Regular Expression

Esta página está incompleta; podés ayudar completando el material.

Enunciado

Una empresa de servicios públicos requiere que hagamos un script que muestre por slaida standard cuántos técnicos pueden realizar una tarea en el domicilio de un cliente en un día determinado.

Sólo está permitido utilizar los comandos grep, sed, vi, echo y wc

Para facilitar las cosas el script recibe como parámetro la localidad y el nombre del día de la semana

Ejemplo de ejecución:

\>script.sh AVELLANEDA JUEVES
Pueden realizar una tarea en AVELLANDEA un JUEVES: 3 técnicos.

Toda la información necesaria se encuentra en un archivo con el siguiente formato:
DATOS.dat
–Informacion de los turnos de trabajo\
NRO_TURNO:identificador de turno
DIAS_DE_SEMANA:Lista con los nombres de los días de la semana separados por ”,”
HORA_ENTRADA:Hora de entrada con formato HH:MM
HORA_SALIDA:Hora de salida con formato HH:MM
–Informacion de los tecnicos
NOMBRE_TECNICO:Nombre completo
LOCALIDAD:Nombre de la localidad donde realiza su trabajo

Lo curioso es que el separador de campo de la informacion de los turnos es ”;” y el separador de la informacion de os tecnicos es ”:” y la separacion entre la informacion de turnos y de tecnicos es “_”

Ejemplo

1;LUNES,MARTES,MIERCOLES,VIERNES,SABADO;08:00;14:00_Ricardo Rodriguez:MORON

Resolución

DATOS="DATOS.dat"
 
if [ $# -ne 2 ]
then
 echo "Debe especificar la zona y el dia"
 exit 1
fi
 
zona=$1
dia=$2
 
#id;dias;inicio;fin_nombre:zona
cantidad=`sed 's/[0-9]*\;\([A-Z,]*\)\;.*\:\([a-zA-Z]*\)/\1:\2/g' $DATOS | grep -c .*$dia.*:$zona`
 
echo "Pueden realizar una tarea en $zona un $dia: $cantidad tecnicos." 

Otra Resolución

#!/bin/bash
 
# pedir por parámetro lo siguiente¸ como se hace en la resolución anterior:
ZONA=MORON     
DIA=SABADO
 
CANT=`grep -c ';.*'$DIA'[^;]*;[^_]*_.*:'"$ZONA" datos.dat`
echo "Pueden realizar una tarea en $ZONA un $DIA: $CANT técnico(s)."
materias/75/08/parcial_20050524_1regexp.txt · Última modificación: 2009/11/01 16:50 por marianoszklanny
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki