Bash - nahodne vybrani radku ze souboru

Michal Krause mike na navrcholu.cz
Středa Květen 12 19:36:17 CEST 1999


Dne 12. 5. 1999 Hrdina, Miroslav napsal:

> Poradi prosim nekdo elegantni zpusob, jak z textoveho souboru, co radek, to
> veta,  vybrat nahodne jeden z nich a predat dal do roury? Ta pozadovana
> nahodnost me tizi. Zatim mi bylo napovezeno vyuziti rand(), ale v C nejsem
> zdatny.

Kdyz u to mermomoci chcete delat v bashi, tak prosim :)

--------------- cut here
#!/bin/bash

IFS="
"

LC=`wc -l < $1`
LN=$[ RANDOM % LC ];

CNT=0

cat $1 | while read LINE; do
        if [ $CNT -eq $LN ]; then
                echo $LINE
                exit
        fi
        CNT=$[ CNT + 1 ]
done
--------------- cut here 

Spousti se s parametrem "soubor_s_tipy", ktery musi byt ukoncen prazdnym
radkem, protoze wc nepocita pocet radek, ale pocet znaku \n a tim padem by se
nikdy nezobrazi posledni radek. Presmerovat vystup do nejake roury snad uz
nebude problem...

S pozdravem

Michal Krause                                                      /\
ICQ: 7665279            Informace (nejenom) ze sveta Linuxu     /\/  \
email: mike na navrcholu.cz ______ http://www.root.cz/ ______ NAVRCHOLU.cz

There are three kinds of lies: lies, damn lies, and benchmarks.
                                                         Jeremy Allison


Další informace o konferenci Linux