25/07/2009, 10:23
|
| | Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 15 años, 5 meses Puntos: 0 | |
Respuesta: Ejercicio awk A ver, hasta ahora tengo hecho esto: #!/bin/bash
function calcula
{
# Imprimimos el mayor tamaño de fichero
ls -l $1 | awk '
BEGIN {
max = 0;
}
{
if ($5 > max){
max = $5;
}
}
END {
print "Maximo tamanio fichero = " max; }'
# Imprimimos ahora el menor tamaño de fichero
ls -l $1 | awk '
BEGIN {
min = max;
}
{
if ($5 < min){
min = $5;
}
}
END {
print "Minimo tamanio fichero =" min; }'
# Y ahora sumamos todos los filesizes y los mostramos
ls -l $1 | awk '{ suma += $5; } END { print "Total bytes ruta : " suma; }'
# Nota: para hacerlo más claro, podríamos expresar el tamaño total en megabytes, dividiendo dos veces
# suma entre 1024 --> ls -l | awk '{ suma += $5; } END { print suma/1024/1024; }'
}
# Fin funcion
i=1
while [ $# -gt 0 ]; do
# Imprimimos la ruta
echo
echo La ruta es $1
# Llamamos a la función que nos calcula todo
calcula
# Desplazamos los parámetros
i=$(($i+1))
shift
done
echo
El problema es el minimo, que no se a qué valor inicializarlo y luego que al hacer el ls -l tengo que especificar la ruta y lo unico que se me ocurre es
ls -l $1 | awk ...
y no funciona,siempre utiliza la misma ruta |