Foros del Web » Administración de Sistemas » Unix / Linux »

Ejercicio awk

Estas en el tema de Ejercicio awk en el foro de Unix / Linux en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/07/2009, 08:23
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Ejercicio awk

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:

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


Muchas gracias.

PD: Un saludo a todos, me acabo de hacer miembro de esta web :)
  #2 (permalink)  
Antiguo 23/07/2009, 13:51
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 5 meses
Puntos: 76
Respuesta: Ejercicio awk

Dinos qué has hecho hasta ahora.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #3 (permalink)  
Antiguo 23/07/2009, 14:08
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ejercicio awk

He estado calculando para los tamaños de cada archivo la suma y eso, pero es que tampoco controlo mucho de awk, por no decir casi nada :S

ls -l | awk '{s+=$5;}END{print s;}'

Cosas así sueltas tengo hechas... :$
  #4 (permalink)  
Antiguo 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
  #5 (permalink)  
Antiguo 25/07/2009, 14:06
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ejercicio awk

lo de la ruta ya lo he solucionado, el único problema que tengo es el del mínimo, que no me lo muestra por pantalla ni nada
  #6 (permalink)  
Antiguo 11/07/2010, 14:32
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ejercicio awk

yo también necesitaría ayuda para colocar filtros awk a un archivo con extensión .net para correr en un programa que genea grafos de redes sociales...no entiendo nada alguien podria ayudarme plis!gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:16.