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
|