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

Suma de posociones vectoriales

Estas en el tema de Suma de posociones vectoriales en el foro de Unix / Linux en Foros del Web. Hola a todos, Estoy comenzando con la programación en Unix y se me pide que haga lo siguiente. Tengo un archivo .txt que contiene un ...
  #1 (permalink)  
Antiguo 24/05/2012, 11:05
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Suma de posociones vectoriales

Hola a todos,

Estoy comenzando con la programación en Unix y se me pide que haga lo siguiente.

Tengo un archivo .txt que contiene un listado de numeros. Necesito sumar todos los numeros y sacar el promedio, pero la shell debe contemplar la posibilidad de que la cantidad de números varie, entonces he estado pensando que la mejor manera es tratarlos como vectores. Hasta ahora se que haciendo:

Esto es un ejemplo:
set -A lista "2" "3" "4" "5"
expr `echo ${lista[0]}` + `echo ${lista[1]}`

Como resultado suma las posiciones 1 y 2 del vector 2 3 4 5, pero quiero que de alguna manera sume todas las posiciones en una sola sentencia.

Gracias.
  #2 (permalink)  
Antiguo 25/05/2012, 08:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Suma de posociones vectoriales

Si tenés un número por línea, lo podés hacer mucho más fácil:

Código BASH:
Ver original
  1. LEIDOS=0
  2. SUMA=0
  3. while read NUMERO; do
  4.     LEIDOS=$(( $LEIDOS + 1 ))
  5.     SUMA=$(( $SUMA + $NUMERO ))
  6. done < archivo_con_los_numeros
  7.  
  8. echo "TOTAL: $SUMA, PROMEDIO: " $(( $SUMA / $PROMEDIO ))

Si tenés más de un número por línea, lo podés hacer con FOR en vez de WHILE.

Etiquetas: shell, suma
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 10:34.