Linux/Unix Shell Scripting - Numero aleatorio sin repeticion

 
Vista:
sin imagen de perfil

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
Val: 66
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Numero aleatorio sin repeticion

Publicado por kip (17 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