
26/06/2006, 03:12
|
| | Fecha de Ingreso: junio-2003
Mensajes: 122
Antigüedad: 21 años, 8 meses Puntos: 0 | |
ok. Disculpad,
paso todo el código...
Código:
# Global variables
film=/opt/etc/film/film.txt
export film
confirm()
{
echo -en "$@"
read ans
ans=`echo $ans | tr '[a-z]' '[A-Z]'`
if [ "$ans" == "Y" ]; then
return 0
else
return 1
fi
}
num_lines()
{
grep -i "$@" $film|wc -l| awk '{ print $1 }'
}
find_lines()
{
# Busca lineas de entrada $1
res=-1
if [ ! -z "$1" ]; then
grep -i "$@" $film
res=$?
fi
return $res
}
list_items()
{
# Lista los resultados encontrados
if [ "$#" -eq "0" ]; then
echo -en "Buscar usuario: (en blanco muesta toda la lista): "
read search
if [ -z "$search" ]; then
search="."
fi
echo
else
search="$@"
fi
find_lines "${search}" | while read i
do
echo "$i" | tr ':' '\t'
done
echo -en "Encontrados: "
num_lines "$search"
}
add_item()
{
echo
echo
echo
echo " NUEVA PELI"
echo " COMPLETA TODOS LOS DATOS"
echo " - AÑO MES DIA DIRECTOR TIPO - "
echo
echo -en "Nombre: "
read name
find_lines "^${name}:"
if [ `num_lines "^${name}:"` -ne "0" ]; then
echo "Pelicula, $name ya existe en el fichero."
return
fi
echo -en "Año: "
read "ano"
echo -en "Director: "
read filmaker
echo -en "Genero:"
read genre
echo -en "Calificacion:"
read calification
# Confirmacion
echo "${name} AnoPelicula=${ano}
${calification}, ${filmaker}, ${genre}" >> $film
echo
echo
echo -en "--> ALTA FILM"
echo
echo
}
locate_single_item()
{
echo -en "Peli a buscar: "
read search
n=`num_lines "$search"`
if [ -z "$n" ]; then
n=0
fi
while [ "${n}" -ne "1" ]; do
#list_items "$search"
echo -en "${n} peli encontrada. Selecciona una "
case "$n" in
"0") echo "menos" ;;
"*") echo "mas" ;;
esac
echo "especifica un patron de busqueda (q para volver al menu anterior): "
read search
if [ "$search" == "q" ]; then
return 0
fi
n=`num_lines "$search"`
done
return `grep -in $search $film |cut -d":" -f1`
}
#remove_item()
#{
# locate_single_item
# search=`head -2 $film`
# if [ -z "${search}" ]; then
# return
# fi
# list_items "$search"
# confirm "Borrar?"
# if [ "$?" -eq "0" ]; then
# grep -v "$search" $film > ${film}.tmp ; mv ${film}.tmp ${film}
# else
# echo "NO BORRADO"
# fi
#}
edit_item()
{
locate_single_item
search=`head -$? $film | tail -1|tr ' ' '.'`
if [ -z "${search}" ]; then
return
fi
list_items "$search"
thisline=`grep -i "$search" $film`
oldname=`echo $thisline|cut -d"" -f1`
oldano=`echo $thisline|cut -d"," -f2`
oldfilmaker=`echo $thisline|cut -d"," -f3`
oldcalification=`echo $thisline|cut -d"," -f4`
oldgenre=`echo $thisline|cut -d"," -f5`
echo "BUSCAR : $search"
grep -v "$search" $film > ${film}.tmp ; mv ${film}.tmp ${film}
echo -en "Pelicula [ $oldname ] "
read name
if [ -z "$name" ]; then
name=$oldname
fi
find_lines "^${name}:"
if [ `num_lines "^${name}:"` -ne "0" ]; then
echo "La pelicula, $name esta en el fichero."
return
fi
echo -en "ano [ $oldano ] "
read ano
if [ -z "$ano" ]; then
ano=$oldano
fi
echo -en "Pelicula [ $oldfilmaker ] "
read filmaker
if [ -z "$filmaker" ]; then
filmaker=$oldfilmaker
fi
echo "${name}:${ano}:${filmaker}" >> $film
}
Última edición por startwav; 26/06/2006 a las 06:03 |