[BASH] Génération nombre aléatoire
Résolu/Fermé
patrice86
Messages postés
1380
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
17 décembre 2024
-
Modifié par patrice86 le 5/11/2014 à 15:20
patrice86 Messages postés 1380 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 17 décembre 2024 - 7 nov. 2014 à 16:02
patrice86 Messages postés 1380 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 17 décembre 2024 - 7 nov. 2014 à 16:02
A voir également:
- [BASH] Génération nombre aléatoire
- Nombre facile - Télécharger - Outils professionnels
- Nombre de jours entre deux dates excel - Guide
- Generation ryzen - Guide
- Réinitialiser chromecast 1ere génération - Guide
- Ascii nombre de caractères - Guide
4 réponses
dubcek
Messages postés
18785
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
6 mai 2025
5 631
7 nov. 2014 à 15:57
7 nov. 2014 à 15:57
non, sans le -2, awk va traiter $size et $$ comme des noms de fichiers à lire
il faudrait plutot passer par des variables
il faudrait plutot passer par des variables
awk -v v1=$size -v v2=$$ 'BEGIN{srand(v2); line=int(rand() * (v1)) + 1}NR==line{print}' $input
dubcek
Messages postés
18785
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
6 mai 2025
5 631
Modifié par dubcek le 6/11/2014 à 08:34
Modifié par dubcek le 6/11/2014 à 08:34
hello
ARGC est le nombre d'arguments passés à awk (3 : $input $size $$)
en le décrementant de 2, on ne garde que $input, les 2 autres ayant été traités par srand et rand
ARGC est le nombre d'arguments passés à awk (3 : $input $size $$)
en le décrementant de 2, on ne garde que $input, les 2 autres ayant été traités par srand et rand
patrice86
Messages postés
1380
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
17 décembre 2024
125
Modifié par patrice86 le 7/11/2014 à 15:26
Modifié par patrice86 le 7/11/2014 à 15:26
Il n'était pas possible de faire ?
awk 'BEGIN{srand(ARGV[3]); line=int(rand() * (ARGV[2])) + 1;ARGV[1]}NR=R=line{print}' $input $size $$
Google est ton ami :)
awk 'BEGIN{srand(ARGV[3]); line=int(rand() * (ARGV[2])) + 1;ARGV[1]}NR=R=line{print}' $input $size $$
Google est ton ami :)
patrice86
Messages postés
1380
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
17 décembre 2024
125
7 nov. 2014 à 16:02
7 nov. 2014 à 16:02
Merci dubcek, c'est bien clair maintenant =)