Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/08/2021, à 18:39

arnoxz

[Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Bonjour,

J'aimerais savoir s'il existe une commande qui permet d'extraire un mot au hasard d'une liste de mots (d'un fichier séparé par exemple, et comment ce fichier doit-il être construit (virgule, double-point, point-virgule, quote,... pour les séparer ?), je suis tombé sur 'random' cependant je pense que cette commande n'est valable que pour les chiffres (integer et pas une liste définie) ?

Merci de votre aide.

Dernière modification par arnoxz (Le 29/08/2021, à 00:27)

Hors ligne

#2 Le 20/08/2021, à 18:51

cracolinux

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Le contenu de ton fichier texte zoukmachine.txt:

toto
tutu
rambo
raoult
sort -R zoukmachine.txt | head -n 1

Va te trier au pif le fichier et te sortir la première ligne


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#3 Le 20/08/2021, à 19:03

Watael

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

une liste de mots

comment est constituée cette liste ?

Dernière modification par Watael (Le 20/08/2021, à 19:03)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 20/08/2021, à 19:42

arnoxz

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

cracolinux a écrit :

Le contenu de ton fichier texte zoukmachine.txt:
....

ça marche ok merci

Hors ligne

#5 Le 20/08/2021, à 19:45

arnoxz

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Watael a écrit :

comment est constituée cette liste ?

elle n'est pas encore constituée et doit être adaptée....


j'ai fait ceci sous python, mais j'aurais préféré l'avoir sous la main dans une fenêtre "linux" / bash

#!/usr/bin/python

import random
stop = 0
while stop != 1:
    liste = ['Albert', 'Jean', 'Robert', 'Annie', 'Spirou', 'Toto', 'Marc']
    print (" --------------------------")
    print ("| Le gagnant est:", random.choice(liste), "|")
    print (" --------------------------")
    myinput = input("Veux-tu relancer la loterie? 'Entrée' pour oui, 'n\'importe quelle autre touche' pour arrêter:",)
    if myinput == "":
        print (":")
        pass
    else:
        break

Mais l'idéal aurait été de pouvoir gérer une liste externe, soit en format txt, ou autre afin de n'éditer que le fichier d'utilisateur / des noms, plutot que tout le code....

la solution de cracolinux se rapproche bien de ma recherche

Hors ligne

#6 Le 20/08/2021, à 19:57

pingouinux

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Bonsoir,

$ cat fichier
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
$ shuf -n1 fichier
ligne 5

$ shuf -n1 fichier
ligne 4

Hors ligne

#7 Le 20/08/2021, à 20:02

arnoxz

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

pingouinux a écrit :

Bonsoir,

merci je note shuf (je n'avais jamais entendu avant :-) )

Hors ligne

#8 Le 20/08/2021, à 20:17

Watael

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

elle n'est pas encore constituée et doit être adaptée....

donc, pour l'instant, on donne des solutions qui pourraient finalement ne pas être retenues.
donc, on travaille dans le vide, pour rien. sad

Dernière modification par Watael (Le 20/08/2021, à 22:15)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 20/08/2021, à 21:47

cracolinux

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Merci pour la découverte de shuf pingouinux smile


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#10 Le 20/08/2021, à 22:20

arnoxz

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Encore une question, pour sort ou shuf, comment éviter de considérer la ligne 1 du fichier texte ou de commenter une ligne qui ne sera pas considérée ? J'avais commencé les lignes à commenter par #!, mais ces lignes sortent parfois (mes 2 premières lignes sont des commentaires qui ne doivent pas être pris en compte) ?!
Alors soit il existe une option pour "commenter" ou une option pour ne pas considérer certaines lignes ?

--> REM - testé ne fonctionne pas
--> /// - testé ne fonctionne pas non plus

Mercii

[EDIT] : je lis que le manuel de sort mentionne également
SEE ALSO
       shuf(1), uniq(1)

Dernière modification par arnoxz (Le 20/08/2021, à 22:30)

Hors ligne

#11 Le 20/08/2021, à 22:50

MicP

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Bonjour

arnoxz a écrit :

…  J'avais commencé les lignes à commenter par #!,  …

Pour éviter les problèmes éventuels à venir,
il vaudrait mieux choisir une autre suite de caractère que #!
car cette suite de caractères, dans la première ligne d'un fichier,
pourrait un jour être interprétée comme un shebang

Hors ligne

#12 Le 20/08/2021, à 23:19

cracolinux

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Le contenu de ton fichier texte zoukmachine.txt:

toto
tutu
#rambo
#raoult
#zog
grep -v \# zoukmachine.txt | sort -R | head -n 1

Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#13 Le 20/08/2021, à 23:40

arnoxz

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

MicP : aouch merci pour le rappel, en effet, confusion entre les langages python, c+, basic (vieux), cobol, fortran, java, html, php,.... (que je maitrise peu mais dans lesquels je dépatouille avec leur manière propres de commenter, le cerveau perd le contrôle), grâce à ce rappel, c'est gravé à jamais :-)

cracolinux : merci, impec :-) je vais pouvoir maintenant faire une loterie avec éthique parmi mon groupe de passionnés pour le tirage au sort des premiers prix :-)

Hors ligne

#14 Le 21/08/2021, à 06:33

pingouinux

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

Si tu veux juste sauter la première ligne (commencer à partir de la deuxième) :

tail -n +2 fichier | shuf -n1

Hors ligne

#15 Le 21/08/2021, à 19:57

arnoxz

Re : [Réso]Extrait aléatoire d'une chaine de caractère en bash ? (Random ?)

pingouinlinux : taupe top :-) - merci

Hors ligne