Crear una agenda con las siguientes características
Publicado por atxito (1 intervención) el 19/10/2018 16:46:02
Hola buenas tengo un problema con una tarea que tengo que realizar a ver si alguien me puede ayudar. El caso es el siguiente enunciado y tengo el siguiente código hecho
Crear un script para tener una base de datos con nombres, apellidos y teléfonos.
Los datos se guardarán en un array que posteriormente se volcará en un fichero llamado personal.txt
El script me mostrará un menú que me permita introducir datos de tantas personas como desee, buscar un dato de los almacenados, modificar cualquier dato, borrar datos y visualizar el listado.
1.- Introducir datos
Guardaré nombre, apellido y teléfono en un array que posteriormente volcaré en el fichero "personal.txt". Tendrá que darme la opción de meter tantos datos como quiera hasta que diga que no.
2.- Buscar datos (según un patrón)
Introduciré el patrón a buscar, puede ser cualquier dato (nombre, apellido o teléfono) y no tiene por qué ser exacto. Por ejemplo, Si quiero buscar "Jose" debo poder poner como patrón de búsqueda "jo" o "se" o "Ose" y me mostrará todas las coincidencias. No debe distinguir entre mayúsculas y minúsculas.
En caso de que el dato a buscar no exista, me lo indicará por pantalla.
3.- Modificar datos (según un patrón)
En este caso el patrón sí debe ser exacto el dato que busco (por ejemplo "Jose") pero no distingurá entre mayúsculas y minúsculas. Mostrará primero y modificará después todos los datos que coincidan con el patrón.
En caso de que el dato a modificar no exista, me lo indicará por pantalla.
4.- Borrar datos (según un patrón)
Igual que en el punto anterior pero borrando los datos en lugar de modificarlos. Primero mostrará las líneas coincidentes con el patrón y después borrará la línea completa con nombre, apellido y teléfono. Pedirá confirmación para borrar.
En caso de que el dato a borrar no exista, me lo indicará por pantalla.
5.- Visualizar listado
Mostrará el contenido de "personal.txt"
TENGO EL SIGUIENTE CÓDIGO PERO NO ME SALE. Muchas gracias por la ayuda.
Crear un script para tener una base de datos con nombres, apellidos y teléfonos.
Los datos se guardarán en un array que posteriormente se volcará en un fichero llamado personal.txt
El script me mostrará un menú que me permita introducir datos de tantas personas como desee, buscar un dato de los almacenados, modificar cualquier dato, borrar datos y visualizar el listado.
1.- Introducir datos
Guardaré nombre, apellido y teléfono en un array que posteriormente volcaré en el fichero "personal.txt". Tendrá que darme la opción de meter tantos datos como quiera hasta que diga que no.
2.- Buscar datos (según un patrón)
Introduciré el patrón a buscar, puede ser cualquier dato (nombre, apellido o teléfono) y no tiene por qué ser exacto. Por ejemplo, Si quiero buscar "Jose" debo poder poner como patrón de búsqueda "jo" o "se" o "Ose" y me mostrará todas las coincidencias. No debe distinguir entre mayúsculas y minúsculas.
En caso de que el dato a buscar no exista, me lo indicará por pantalla.
3.- Modificar datos (según un patrón)
En este caso el patrón sí debe ser exacto el dato que busco (por ejemplo "Jose") pero no distingurá entre mayúsculas y minúsculas. Mostrará primero y modificará después todos los datos que coincidan con el patrón.
En caso de que el dato a modificar no exista, me lo indicará por pantalla.
4.- Borrar datos (según un patrón)
Igual que en el punto anterior pero borrando los datos en lugar de modificarlos. Primero mostrará las líneas coincidentes con el patrón y después borrará la línea completa con nombre, apellido y teléfono. Pedirá confirmación para borrar.
En caso de que el dato a borrar no exista, me lo indicará por pantalla.
5.- Visualizar listado
Mostrará el contenido de "personal.txt"
TENGO EL SIGUIENTE CÓDIGO PERO NO ME SALE. Muchas gracias por la ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
FICHERO="personal.txt"
function Menu
{
echo "_____________MENU_____________"
echo ""
echo " 1. Introducir Datos"
echo " 2. Buscar Contacto"
echo " 3. Modificar datos"
echo " 4. Borrar datos"
echo " 5. Listar datos"
echo " 6. Salir"
}
function Introducir
{
if [ -e "listado.txt" ]; then #Si el fichero existe...
echo "Introduzca datos de la persona: "
read -p "Nombre:" NOMBRE
read -p "Primer apellido: " APELLIDO1
read -p "Telefono: " TELEFONO
# Redireccionamos los datos introducidos al fichero de la agenda
echo "$NOMBRE : $APELLIDO1 : $TELEFONO " >> $FICHERO
else
# Si no existe el fichero, damos el mensaje de error...
touch listado.txt
echo "Estamos creando el fichero..."
sleep 1
echo "Introduzca datos de la persona: "
read -p "Nombre:" NOMBRE
read -p "Primer apellido: " APELLIDO1
read -p "Telefono: " TELEFONO
# Redireccionamos los datos introducidos al fichero de la agenda
echo "$NOMBRE : $APELLIDO1 : $TELEFONO " >> $FICHERO
fi
echo
}
function Buscar
{
echo "Introduzca datos de la persona a buscar: "
read -p "Dato: " DATO
grep -i "$DATO" personal.txt
}
function modificar
{
echo "Introduzca datos de la persona a buscar: "
read -p "Dato: " DATO_VIEJO
if [ `grep -c $DATO_VIEJO personal.txt` -eq 0 ]; then
echo "El dato no exsiste"
else
echo "El fichero existe"
echo -p "Introduce el nuevo dato" DATO_NUEVO
sed -i "s/$DATO_VIEJO/$DATO_NUEVO/I" personal.txt
fi
}
function borrar
{
echo "Introduzca datos de la persona borrar: "
read -p "Dato: " DATO
if [ `grep -c $DATO personal.txt` -eq 0 ]; then
echo "El contacto no exixte"
else
echo "El contacto existe"
echo "Procedemos a borrarlo..."
sleep 1
sed "/$DATO/d" personal.txt
echo -p "Hemos borrado el contacto"
fi
}
function Listar
{
cat $FICHERO
}
opc=0
salir=5
while [ $opc -ne $salir ]; # Mientras el valor de $opt es distinto del valor de $salir...
do
clear
Menu # Dibujamos el menu en pantalla
read -p "Opcion:..." opc # Escogemos la opcion deseada
if [ $opc -ge 1 ] && [ $opc -le 5 ]; then # No se por que no funciona el rango...!!!!!!!!!!!!!!!!!!!!!!
clear
case $opc in # Acciones para las diferentes opciones del menu
1)Introducir
;;
2)Buscar
;;
3)modificar
;;
4)borrar
;;
5)Listar
;;
6)echo "Gracias por sus consultas"
;;
esac
else
echo "No ha introducido una opcion correcta!!"
fi
echo "Pulse una tecla..."
read
done
Valora esta pregunta
0