Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 328719Cette discussion

Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » commande pour melanger une liste
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
commande pour melanger une liste
Auteur: totor (IP enregistrée)
Date: le 12 septembre 2007 à 18:27

Bonjour,

je cherche une commande qui me permettrait de melanger une liste

ex : j'ai mon fichier toto

titre1
titre2
titre3
.....

et je voudrais donc le melanger (aleatoirement) pour me retrouver avec une liste non triée,...
note : j'ai deja fait ca avec des commandes vi mais je voudrai
une commande en direct.. enfin s'il en existe une

voila merci

Re: commande pour melanger une liste
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 12 septembre 2007 à 20:04

sort -R fichier

man sort pour plus d'informations

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: commande pour melanger une liste
Auteur: totor (IP enregistrée)
Date: le 12 septembre 2007 à 20:51

slt

merci mais l'option -R n'existe pas chez moi !!!

suis sous debian
une info sur sort me donne :
sort (coreutils) 5.2.1

@+

Re: commande pour melanger une liste
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 12 septembre 2007 à 22:51

$ sort --version
sort (GNU coreutils) 6.9


Sinon, il faut bricoler pour le faire :

nblignes=$(wc -l fichier)
> fichier_random
while [ $nblignes -gt 0 ] ; do
  num=$(( $RANDOM % $nblignes))
  head -n $num $fichier | tail -1 >> fichier_random
  sed -i "${num}d/" fichier
done


à tester

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: commande pour melanger une liste
Avatar
Auteur: tg(y) (IP enregistrée)
Date: le 12 septembre 2007 à 23:21

oudoubah, il vient d'où, ton programme sort ?

Re: commande pour melanger une liste
Avatar
Auteur: diancech (IP enregistrée)
Date: le 12 septembre 2007 à 23:44

tg(y) a écrit :

oudoubah, il vient d'où, ton programme sort ?


Je ne sais pas d'où vient son "sort", mais j'ai le même que lui. Donc ce ne doit pas être un "sort" qui a muté. image : tcontent image : petard



--------------------------------------------------------------------------------------------------------------------------------------------------
Exige beaucoup de toi-même et attends peu des autres. Ainsi beaucoup d'ennuis te seront épargnés. Confucius

Re: commande pour melanger une liste
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 13 septembre 2007 à 09:10

tg(y) a écrit :

oudoubah, il vient d'où, ton programme sort ?


C'est gnu sort, version 6.2.9 (de memoire)

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: commande pour melanger une liste
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 13 septembre 2007 à 09:30

tg(y) a écrit :

oudoubah, il vient d'où, ton programme sort ?


Bon, il me semble que j'ai répondu à côté de la plaque image : fou

Mon sort est celui par défaut des corutils d'archlinux

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: commande pour melanger une liste
Auteur: Raph__ (IP enregistrée)
Date: le 13 septembre 2007 à 14:07

Salut,

oudoubah a écrit :


nblignes=$(wc -l fichier)
> fichier_random
while [ $nblignes -gt 0 ] ; do
num=$(( $RANDOM % $nblignes))
head -n $num $fichier | tail -1 >> fichier_random
sed -i "${num}d/" fichier
done


Cela ne fonctionnera pas. Rien ne garanti que toutes les lignes seront lues et le risque de doublon est élevé.

Re: commande pour melanger une liste
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 13 septembre 2007 à 14:20

La version corrigée :

nblignes=$(wc -l fichier | cut -d' ' -f 1)
> fichier_random
while [ $nblignes -gt 0 ] ; do
        num=$(( $RANDOM % $nblignes + 1))
        head -n $num fichier | tail -1 >> fichier_random
        sed -i -e "${num}d\
" fichier
        nblignes=$(($nblignes - 1))
done


Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: commande pour melanger une liste
Auteur: totor (IP enregistrée)
Date: le 13 septembre 2007 à 17:25

slt

bon il semblerait qu'il n'y ait pas de commande,
je vais quand meme jeter a oeil a cette version 6.9
sinon merci pour le script, j'en avais fait un a base de vi et sed
mais celui la est pas mal non plus

@+

Re: commande pour melanger une liste
Auteur: totor (IP enregistrée)
Date: le 13 septembre 2007 à 17:37

re

apres un bref instant, et une petite installation de la version 6.9
je confirme en effet que l'on trouve l'option -R de sort
qui permet de melanger les lignes

merci a tousimage : content



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.