Linux/Unix Shell Scripting - Numero aleatorio sin repeticion

   
Vista:

Numero aleatorio sin repeticion

Publicado por Ruben (1 intervención) el 08/11/2017 11:25:19
Hola necesito crear en un sh un numero de 4 digitos por ejemplo, aleatorio pero que sus digitos no se repitan.

estoy probando a generar de un digito con: `perl -e 'print (sprintf("%.0f",rand(9)));'`

y me lo genera bien, pero como hago para repetir eso 4 veces sin que sean iguales los numeros.

vamos crear un 4182 por ejemplo

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Numero aleatorio sin repeticion

Publicado por kip (16 intervenciones) el 09/11/2017 03:54:05
Hola, puedes hacerlo con bash directamente, el comando shuf algo asi tal vez:

1
shuf -i 0-9 -n 4 | tr -d '\n'

Uso tr para mostrar los enteros seguidos, sin saltos de linea, de todas formas si deseas puedes usar python, tal como con perl:

1
echo -e 'from random import sample\nprint "".join(map(str, sample(xrange(10), 4)))' | python

Algo mas largo...

En Perl quizas seria asi:

1
perl -e "use List::Util 'shuffle'; printf(\"%s\n\", join('', (shuffle(0..9))[0..3]));"
http://www.perlmonks.org/?node_id=917225

Pruebalo y nos cuentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad