Tabla de Contenidos

Examen Parcial - 75.08. Sistemas Operativos

Cátedra: Osvaldo Clua
Fecha: Primera oportunidad
Día: ??/??/????
Tema: Regular Expression

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

Enunciado

Una empresa de medicina prepaga nos encarga el desarrollo de un script para que ante la llamada de un asociado, el operador telefónico le pueda informar el nombre y la dirección de los prestadores a los que se puede dirigir según la especialidad requerida, el Plan y la Zona donde se encuentre el asociado.

Solo se pueden utilizar los comandos: sed, grep, vi, echo, wc.

Especialidades.dat, el separador de campos es ”:“
Código de Especialidad: Descripción : Código de Zona
Ejemplo
ASD01:Emergencias:Lanus
C41M:Cuerpo Médico: Capital Federal
87INT:Internación:Zona Centro Bs. As.
CCCC:HHHHH:PPPPPPP
LFA843:Farmacia:Salta

Prestadores.lis, el separador de campos es ”+“
Código de Prestador + Nombre + Código de Especialidad + Planes + Dirección
Ejemplo
C001+Baywatch+EMER01+Gold, Platinium+Av. del Mar y Playa Bonita
C001+Emergensub+CCCC-1+0,1+Av. Teniente Gral. J. D. Perón CCCC
CD001+Dr. Garcia+DRALL+0,1,210,310+ Av. Remedios de Escalada de San Martín 987
FD00A+Farmacia Villegas+CAMPO03F+CCCC+9 de Julio 87

Parámetros de entrada: Código de Plan, Descripción de Especialidad requerida y Zona donde se encuentra

Ejemplo de invocación : buscador.sh Gold Farmacia “Patagonia Sudoeste”

Resolución

#!/bin/bash
 
PLAN="$1"
ESPECIALIDAD="$2"
ZONA="$3"
 
CODIGO=`sed <"especialidades.dat" -n "s/^\([^:]*\):$ESPECIALIDAD:$ZONA/\1/p"`
sed < "prestadores.lis" -n "s/^[^+]*+\([^+]*\)+$CODIGO+.*$PLAN.*+\([^+]*\)/\1 \2/p"