erlug
[Top] [All Lists]

Re: [Erlug] Agli esperti della bash

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] Agli esperti della bash
From: "Ivan Sergio Borgonovo" <mail@xxxxxxxxxxxxxxx>
Date: Mon, 10 Jun 2002 11:25:57 +0200
On 10 Jun 2002 at 10:45, Enzo wrote:

> lunedì 10 giugno Ivan Sergio Borgonovo ha scritto:

> > MAX=2^15-1

> > pippo = $[$RANDOM*RANGE/MAX]

> > Non giurerei sul fatto che si impappini con gli arrotondamenti o vada
> > in overflow... puoi rimediare con

> > man bc

> Beh, in questo caso rimedio con il mio programmino in c,
> che allego nel caso possa servire a qualcuno.

Puoi indagare con quello che ti offre bash, magari è più che
sufficiente... io sono risaputamente pigro.

Attenzione che

pippo = $[ espressione ]

è bash ma non sh

Non mi viene in mente nulla per sh se non bc per farlo più portabile.
Mi passa per la testa eval ma ho il sospetto non serva _anche_ a
questo.

Se non ti fai troppi problemi per quanto random deve essere il tuo
numero random et similia (dovrebbe esserci qualche cosa anche in /proc/
più random ma più complicato da trattare da bash) e controlli la
questione degli arrotondamenti/overflow in bash la soluzione bash ha
MOLTO meno overhead di quella in C.


P.S.
per quanto a naso greep sia più piccolo di sed mi sa che il tempo di
esecuzione di sed per stampare la riga n-esima è più breve di quello di
greep.

Volendo essere proprio masochisti, proprio per il problema dei fork
potresti fare qualche cosa del tipo

NLINEA=6
i=0
while read linea
do
    i=$[$i+1]
    if [$i -eq $NLINEA]
    then
    echo $linea
    exit
    fi
done < file

Che credo sia più o meno quelo che comunque fa sed visto che si deve
contare tutti gli 0A.



--
Salve
Ivan Sergio Borgonovo
http://www.webthatworks.it/
uniq life || sleep 24h



<Prev in Thread] Current Thread [Next in Thread>