OVH Cloud OVH Cloud

sequences aleatoires (bash)

5 réponses
Avatar
Kevin Denis
[bash-linux]
Bonjour,

Je suis tombe sur un document sur www.bsdbooks.net pour generer des
chiffres aleatoires.

Je voudrais maintenant generer du texte aleatoire. (afin de remplir
des champs d'une base de donnees pour la "charger").

Comment generer une suite aleatoire de caracteres comprises entre
0 et n? (autre que de faire un RANDOM%26 suivi d'une correspondance
lettre par lettre, fait n fois)

Comment generer un "pave" de texte (je pense piocher dans
/usr/share/dict/words), ca vous parait une bonne idee?

Du genre:
dico=($(head -20000 /usr/share/dict/words))
echo ${dico[$((RANDOM%20000))]}

Merci

--
Kevin

5 réponses

Avatar
Stephane Chazelas
2005-01-6, 18:42(+00), Kevin Denis:
[...]
Du genre:
dico=($(head -20000 /usr/share/dict/words))
echo ${dico[$((RANDOM%20000))]}
[...]


Tu peux faire:

awk 'BEGIN{srand()}
{print rand() "t" $0}' < /usr/share/dict/words |
sort | head -n 100 | cut -f2- | fmt

--
Stephane

Avatar
cedric
Stephane Chazelas wrote:
2005-01-6, 18:42(+00), Kevin Denis:
[...]

Du genre:
dico=($(head -20000 /usr/share/dict/words))
echo ${dico[$((RANDOM%20000))]}


[...]

Tu peux faire:

awk 'BEGIN{srand()}
{print rand() "t" $0}' < /usr/share/dict/words |
sort | head -n 100 | cut -f2- | fmt



Il est trop fort !

Version accélérée :

head -n 100 /usr/share/dict/words | awk 'BEGIN{srand()}
{print rand() "t" $0}' | sort | cut -f2- | cut -c2- | fmt


Ca fait le head AVANT, et ca vire la première lettre qui serait toujours
A sinon.

;)


Avatar
Penguin_X
cedric wrote:
Stephane Chazelas wrote:

2005-01-6, 18:42(+00), Kevin Denis:
[...]

Du genre:
dico=($(head -20000 /usr/share/dict/words))
echo ${dico[$((RANDOM%20000))]}



[...]

Tu peux faire:

awk 'BEGIN{srand()}
{print rand() "t" $0}' < /usr/share/dict/words |
sort | head -n 100 | cut -f2- | fmt



Il est trop fort !

Version accélérée :

head -n 100 /usr/share/dict/words | awk 'BEGIN{srand()}
{print rand() "t" $0}' | sort | cut -f2- | cut -c2- | fmt


Ca fait le head AVANT, et ca vire la première lettre qui serait toujours
A sinon.

;)
rand() , je ne connais pas beaucoup bash, mais la syntaxe ressemble

drôlement à C.



Avatar
Stephane Chazelas
2005-01-06, 11:29(-05), Penguin_X:
[...]
head -n 100 /usr/share/dict/words | awk 'BEGIN{srand()}
{print rand() "t" $0}' | sort | cut -f2- | cut -c2- | fmt
[...]


rand() , je ne connais pas beaucoup bash, mais la syntaxe ressemble
drôlement à C.


Ce n'est pas bash, c'est awk en l'occurrence dont la syntaxe est
effectivement de type C.

--
Stephane


Avatar
Manu
Kevin Denis wrote:
Je voudrais maintenant generer du texte aleatoire. (afin de remplir
des champs d'une base de donnees pour la "charger").


Et ça ça serait pas suffisant ?
joybook linux # cat /dev/urandom | uuencode -m -

Mais il y a pas que des caractères alphanumériques.