Linux/Unix Shell Scripting - Ejercicio Awk

 
Vista:

Ejercicio Awk

Publicado por Phass (1 intervención) el 23/07/2009 16:45:36
Hola, estoy intentando hacer un ejercicio para la universidad pero estoy algo atascado, a ver si alguien me echa un cable. El enunciado dice lo siguiente:

[I]El comando ls empleado con la opción –l escribe, separando utilizando espacios, para cada uno de los ficheros almacenados en la ruta especificada como argumento, sus permisos de acceso, el número de enlaces que tiene, el nombre de su propietario, el grupo al que pertenece, el tamaño (en bytes), una marca de tiempo con la última
modificación, y su nombre. Se muestra a continuación, un ejemplo de ejecución del comando con esta opción:

$prompt> ls –l /etc
total 1724
-rw-r--r-- 1 root root 15228 ene 24 2003 a2ps.cfg
-rw-r--r-- 1 root root 2562 ene 24 2003 a2ps-site.cfg
...
-rw-r--r-- 1 root root 361 ene 26 20:07 yp.conf

Realizar un shell-script que, utilizando awk y el comando ls con la opción –l anteriormente descrita, muestre para cada una de las rutas pasadas como argumento del script, los tamaños en bytes del mayor y menor fichero y el total
de bytes de los ficheros incluidos en la ruta en cada caso. Por ejemplo, supuesto el fichero que contiene el shellscript se llama ejercicio …

$prompt> ./ejercicio /etc /home/asignaturas /lib

ruta: /etc
tamaño mayor fichero: 924873294
tamaño menor fichero: 43213
total bytes ruta: 1435689475

ruta: /home/asignaturas
tamaño mayor fichero: 4096
tamaño menor fichero: 4096
total bytes ruta: 4096

ruta: /lib
tamaño mayor fichero: 5512945
tamaño menor fichero: 4096
total bytes ruta: 14307223[/I]

Muchas gracias.

PD: Un saludo a todos, me acabo de hacer miembro de esta web :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ejercicio Awk

Publicado por DaNiElOs (5 intervenciones) el 03/08/2009 11:37:33
bueno pues para tu pregunta la idea que se me ocurre seria algo por el estilo

for i in $* #ESTA LINEA TE COGE LOS ARGUMENTOS QUE PASAS POR
#ENTRADA
do
ls -l $i | awk 'BEGIN{mayor=$5; menor=$5; total=0;}
{if (mayor<$5)
{mayor=$5};
if (menor>$5)
{menor=$5};
total+=$5;}
END{print "Tamaño mayor fichero: ",mayor;
print "Tamñao menor fichero: ",menor;
print "Numero total de tamaño directorio: ",total;}'
done


Con este fragmento de programa te debería ir. Si tienes cualquier duda en lo que he escrito consultamelo. Espero haber sido de ayuda. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar