Examen Parcial - 75.08. Sistemas Operativos

Cátedra: Osvaldo Clua
Fecha: Primer recuperatorio - Primer Cuatrimestre 2005
Día: 07/06/2005
Tema: UNIX

Enunciado

Se tiene en un directorio una serie de archivos uno de ellos es para control (control.dat), con la siguiente información:

  • Nombre de archivo
  • Cantidad de lineas

Se debe entonces hacer un script que recia como parámetro un directorio y a partir del archivo antes mencionado valide el contenido del directorio. Esto significa verificar que los archivos contenidos en control.dat existen en el directotio y tienen la cantidad especificada. Ademas verificar si hay archivos en el directorio que no se encuentran en control.dat. Listar todos estos resultados en un archivo salida.txt

Ej:
prueba.sh : ok
Archi.txt : distinta cantidad de lineas
Parcial.pl : no existe en el directorio
Ejemplo.c : no existe en control.dat

Si el directorio pasado como parámetro o el archivo de control no existen abortar el script

Resolución

#!/bin/bash
 
if [ $# -ne 1 -o ! -d "$1" -o ! -f "$1/control.dat" ]
then
        echo "Error de parámetros."
        exit 1
fi
 
OUT=salida.txt
rm -f "$OUT"
for file in `ls "$1"`
do
        [ "$file" == "control.dat" ] && continue
        echo -n "$file: " | tee -a "$OUT"
        record=`grep '^'"$file"';' "$1/control.dat"`
        if [ -z $record ]
        then
                echo "No existe en control.dat" | tee -a "$OUT"
                continue
        fi
        if [ `cat $1/$file | wc -l` -ne `echo $record | cut -d';' -f2` ]
        then
                echo "Distinta cantidad de líneas." | tee -a "$OUT"
                continue
        fi
        echo "Ok." | tee -a "$OUT"
done
exit 0
materias/75/08/parcial_20050607_1unix.txt · Última modificación: 2009/11/02 00:20 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