Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/07/2009, 10:23
Phass
 
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