Article View: es.comp.os.linux.programacion
Article #7987Re: Leer un fichero
From: zeldere
Date: Thu, 02 Jan 2003 23:10
Date: Thu, 02 Jan 2003 23:10
81 lines
3220 bytes
3220 bytes
Respuesta al mensaje de: DK <ionidk@terra.es>.
Con identificador: <7d4ff0e4.0301020707.6388a1a6@posting.google.com>.
> Quiero sacar la media de una serie de datos que tengo almacenados en
> un fichero. El fichero podria ser de la siguiente manera:(datos.txt)
> 15
> 47
> 30
> 80
> 11
> 42
> 65
> 2
> 25
> 23
> 16
Veamos, ya tienes una soluci�n en C, otra con awk, otra en PHP...
ahora tines una que usa exclusivamente bash:
____ C�digo ___
#!/bin/bash
# media_aritm�tica.zd (resultado entero).
# Autor: Zeles Deree.
# Uso: media_aritm�tica.zd <archivo>
total=0
divisor=0
echo
for i in $(< $1); do
total=$(( $total + $i ))
divisor=$(( $divisor + 1 ))
done
media=$(( $total / $divisor ))
echo "Resultado: $media"
_______________
Pero bash no puede trabajar con decimales, as� que si necesitas
precisi�n puedes incluir en el gui�n una linea que llame a "bc", que s�
puede trabajar con n�meros racionales.
____ C�digo ___
#!/bin/bash
# media_aritm�tica.zd (resultado racional).
# Autor: Zeles Deree.
# Uso: media_aritm�tica.zd <archivo>
total=0
divisor=0
echo
echo -n "Introduce el n�mero de decimales deseados: "
read deci
for i in $(< $1); do
total=$(( $total + $i ))
divisor=$(( $divisor + 1 ))
done
media=$(echo "scale=${deci}; $total / $divisor" | bc)
echo "Resultado: $media"
_______________
> Quiesiera saber como se puede leer ese fichero, ir linea a linea para
> poder acumularlo. Como supondreis no tengo ni idea de hacer scripts,
> pero estoy en ello, si ademas me dijeseis donde puedo enconntrar
> informacion, para la siguiente vez no tendree que preguntar.
Si lo que quieres es aprender a programar guiones o "scripts",
puedes empezar con bash, hay muchos manuales al respecto en la Red.
Tambi�n podr�as echarle un vistazo al manual: "$ man bash"... bueno, lo
del manual puedes dejarlo para m�s adelante; no es de las lecturas m�s
amenas y amigables que te puedes encontrar, sin embargo te servir� como
referencia una vez que ya sepas la base.
Saludos.
--
Zeles Deree (zeldere) / [.zd]
* Correo: zeldere_nntp@yahoo.es
* GNU/Linux - LFS 3.1
Technical Details
Message-ID:
<av2gsa$fs2$1@titan.bt.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!btnet-peer1!btnet-peer0!btnet-peer!btnet!newsfeed.bt.es!news.bt.es!not-for-mailReferences:
<7d4ff0e4.0301020707.6388a1a6@posting.google.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,5cf283a7acb0d167 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-01-02 15:27:25 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!btnet-peer1!btnet-peer0!btnet-peer!btnet!newsfeed.bt.es!news.bt.es!not-for-mail From: zeldere <zeldere_nntp@yahoo.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: Leer un fichero Date: 2 Jan 2003 23:10:02 GMT Organization: BT Tel. Netnews service (readers) Lines: 81 Message-ID: <av2gsa$fs2$1@titan.bt.es> References: <7d4ff0e4.0301020707.6388a1a6@posting.google.com> NNTP-Posting-Host: cable223a208.usuarios.retecal.es Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit X-Trace: titan.bt.es 1041549002 16258 212.183.223.208 (2 Jan 2003 23:10:02 GMT) X-Complaints-To: abuse@bt.es NNTP-Posting-Date: 2 Jan 2003 23:10:02 GMT User-Agent: slrn/0.9.7.3 (Linux)