Choix aléatoire d'un fichier dans un réperto
Résolu/Fermé
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
-
19 oct. 2009 à 09:24
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 19 oct. 2009 à 16:54
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 19 oct. 2009 à 16:54
A voir également:
- Choix aléatoire d'un fichier dans un réperto
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
20 réponses
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 11:37
19 oct. 2009 à 11:37
Bon, alors j'ai testé les 2 méthodes :
pour la première :
ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}'
la commande me sort toujours le même sous répertoire du répertoire quoi qu'il arrive.
pour la deuxième :
#! /bin/sh
#set -xv
# A partir d'un tableau contenant une liste de noms (en colonne), tirage au sort d'un nom dans la liste
#+ Création d'un tableau
var=$(ls -r1 /chemin/vers/le_repertoire/* | egrep -v '^$')
#+ Lecture dans une variable de type tableau
Var=($var)
#+ Compter le nombre d'éléments
num_var=${#Var[*]}
#+ Affichage d'un nom au hasard
echo ${Var[$((RANDOM%num_var))]}
A chaque commande, la console me retourne 20 lignes et à la fin celame retourne tout le répertoire courrant.
Pouvez vous m'éclairer parce que je suis un peu perdu la ? (faut dire que je suis débutant aussi...)
Merci !
Toopa
pour la première :
ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}'
la commande me sort toujours le même sous répertoire du répertoire quoi qu'il arrive.
pour la deuxième :
#! /bin/sh
#set -xv
# A partir d'un tableau contenant une liste de noms (en colonne), tirage au sort d'un nom dans la liste
#+ Création d'un tableau
var=$(ls -r1 /chemin/vers/le_repertoire/* | egrep -v '^$')
#+ Lecture dans une variable de type tableau
Var=($var)
#+ Compter le nombre d'éléments
num_var=${#Var[*]}
#+ Affichage d'un nom au hasard
echo ${Var[$((RANDOM%num_var))]}
A chaque commande, la console me retourne 20 lignes et à la fin celame retourne tout le répertoire courrant.
Pouvez vous m'éclairer parce que je suis un peu perdu la ? (faut dire que je suis débutant aussi...)
Merci !
Toopa
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 10:55
19 oct. 2009 à 10:55
hello
$ cd /etc $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' updatedb.conf $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' bash_completion.d $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' modules $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' xdg $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' nsswitch.conf
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
19 oct. 2009 à 10:57
19 oct. 2009 à 10:57
Salut,
Il n'y a pas d'option '-R' pour la commande 'sort'.
Il existe la fonction RANDOM en shell, mais il faut passer par diverses manipulations pour arriver au résultat que tu veux, une simple commande ne fera pas ce que tu veux...
Voici un exemple :
;-))
Il n'y a pas d'option '-R' pour la commande 'sort'.
Il existe la fonction RANDOM en shell, mais il faut passer par diverses manipulations pour arriver au résultat que tu veux, une simple commande ne fera pas ce que tu veux...
Voici un exemple :
#! /bin/sh #set -xv # A partir d'un tableau contenant une liste de noms (en colonne), tirage au sort d'un nom dans la liste #+ Création d'un tableau var=$(ls -r1 /chemin/vers/le_repertoire/* | egrep -v '^$') #+ Lecture dans une variable de type tableau Var=($var) #+ Compter le nombre d'éléments num_var=${#Var[*]} #+ Affichage d'un nom au hasard echo ${Var[$((RANDOM%num_var))]}
;-))
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 11:00
19 oct. 2009 à 11:00
Merci beaucoup à vous deux. Je vais me pencher sur vos programmes ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 13:16
19 oct. 2009 à 13:16
Oui oui (quand même... :D)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
19 oct. 2009 à 13:25
19 oct. 2009 à 13:25
Ben chez moi ça marche à merveille :
;-))
jp@MDK:~/tmpfs ssh$ cat foo.sh #! /bin/sh #set -xv # A partir d'un fichier (fichier.txt) contenant une liste de noms (en colonne), tirage au sort d'un nom dans la liste #+ Création d'un tableau var=$(ls -r1 /home/jp/Documents/scripts/* | egrep -v '^$') #+ Lecture dans une variable de type tableau Var=($var) #+ Compter le nombre d'éléments num_var=${#Var[*]} #+ Affichage d'un nom au hasard echo ${Var[$((RANDOM%num_var))]} jp@MDK:~/tmpfs ssh$ ./foo.sh /home/jp/Documents/scripts/conversion_secondes.sh jp@MDK:~/tmpfs ssh$ ./foo.sh /home/jp/Documents/scripts/scriptEterm.sh~ jp@MDK:~/tmpfs ssh$ ./foo.sh ajoute_cv_4.sh jp@MDK:~/tmpfs ssh$ ./foo.sh /home/jp/Documents/scripts/effectuer_opération.sh jp@MDK:~/tmpfs ssh$ ./foo.sh /home/jp/Documents/scripts/version.sh jp@MDK:~/tmpfs ssh$ ./foo.sh ajout-supprim-modif_user.sh jp@MDK:~/tmpfs ssh$
;-))
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 14:13
19 oct. 2009 à 14:13
En effet tu as raison ça marche !
J'avais un petit problème de droits sur mon script : permission denied...
Comme je ne m'y connais pas trop encore ça m'a un peu perturbé. Mais tout va mieux !
Merci pour ton aide précieuse !
Toopa
J'avais un petit problème de droits sur mon script : permission denied...
Comme je ne m'y connais pas trop encore ça m'a un peu perturbé. Mais tout va mieux !
Merci pour ton aide précieuse !
Toopa
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 14:35
19 oct. 2009 à 14:35
En fait il y a quand même encore un problème... Mais c'est ma faute je n'avais pas précisé mon projet..
Je souhaite, réellement, choisir un fichier OU un sous-dossier qui sont dans un dossier. Ceci de façon aléatoire.
(alors qu'en fait là je ne récupère que des fichiers)
ET je souhaite qu'ils ne proviennent que de "l'étage" inférieur uniquement. C'est à dire qu'ils doivent si possible être fichier ou dossier fils uniquement, pas petit-fils. Je ne sais pas si c'est bien compréhensible...
Ca devient plus compliqué d'un coup :-/
Merci pour votre aide.
Toopa
Je souhaite, réellement, choisir un fichier OU un sous-dossier qui sont dans un dossier. Ceci de façon aléatoire.
(alors qu'en fait là je ne récupère que des fichiers)
ET je souhaite qu'ils ne proviennent que de "l'étage" inférieur uniquement. C'est à dire qu'ils doivent si possible être fichier ou dossier fils uniquement, pas petit-fils. Je ne sais pas si c'est bien compréhensible...
Ca devient plus compliqué d'un coup :-/
Merci pour votre aide.
Toopa
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
19 oct. 2009 à 14:44
19 oct. 2009 à 14:44
Tu remplaces "ls -r1" par "ls -d1".
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 14:50
19 oct. 2009 à 14:50
Désolé pour le triple post mais je me dis que la solution interessera peut être quelqu'un un jour :
il suffit d'enlever l'étoile à la fin du chemin vers le répertoire et du coup on prend en compte tout le contenu d'un dossier, au premier sous-étage uniquement.
il suffit d'enlever l'étoile à la fin du chemin vers le répertoire et du coup on prend en compte tout le contenu d'un dossier, au premier sous-étage uniquement.
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 14:59
19 oct. 2009 à 14:59
ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}'
la commande me sort toujours le même sous répertoire du répertoire quoi qu'il arrive.
tu as combien de fichiers ?
la commande me sort toujours le même sous répertoire du répertoire quoi qu'il arrive.
tu as combien de fichiers ?
$ ls | wc -l 239 $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' kernel-img.conf $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' mono $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' shadow $ ls|awk '{x++;f[NR]=$0} ; END {y=int(rand()*x) ; print f[y]}' manpath.config $
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 15:02
19 oct. 2009 à 15:02
J'ai 15 sous dossiers et 2 fichiers et c'est toujours le même qui sort
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 15:05
19 oct. 2009 à 15:05
tu es sur Solaris ? essaye avec nawk plutot que awk
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 15:26
19 oct. 2009 à 15:26
Non ça ne marche pas non plus nawk.. Je ne suis pas sur Solaris.
Par contre il y a du nouveau. Je me suis placé dans un répertoire où il n'y a que des fichiers (pas de sous dossiers) et là il ne me retourne rien.. étrange.. c'est dommage car ça m'arrangerait bien si je pouvais avoir la fonction seulement en une commande.
Merci de ton aide en tout cas..
Par contre il y a du nouveau. Je me suis placé dans un répertoire où il n'y a que des fichiers (pas de sous dossiers) et là il ne me retourne rien.. étrange.. c'est dommage car ça m'arrangerait bien si je pouvais avoir la fonction seulement en une commande.
Merci de ton aide en tout cas..
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 15:36
19 oct. 2009 à 15:36
cette commande doit afficher autant de nombres aléatoires différents que de fichiers
$ ls|wc -l
21
$ ls|awk '{print rand()}'
0.00289744
0.697297
0.477687
0.480605
0.520055
0.566764
0.600844
0.387367
0.472216
0.530768
0.614666
0.694574
0.705612
0.224303
0.862701
0.413267
0.780572
0.0668005
0.715828
0.929452
0.305026
$ ls|wc -l
21
$ ls|awk '{print rand()}'
0.00289744
0.697297
0.477687
0.480605
0.520055
0.566764
0.600844
0.387367
0.472216
0.530768
0.614666
0.694574
0.705612
0.224303
0.862701
0.413267
0.780572
0.0668005
0.715828
0.929452
0.305026
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 15:49
19 oct. 2009 à 15:49
essaye avec srand()
ls|awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
ls|awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 16:24
19 oct. 2009 à 16:24
Ca semble marcher un peu mieux :
T0112205@fremm3 [] Desktop $ ls -l
total 24
-rw-r--r-- 1 T0112205 webalizer 4483 Oct 7 13:47 Home.desktop
-rw-r--r-- 1 T0112205 webalizer 3779 Oct 7 13:47 System.desktop
drwxrwxr-x 2 T0112205 webalizer 4096 Oct 19 16:18 toto/
-rw-r--r-- 1 T0112205 webalizer 5076 Oct 7 13:47 trash.desktop
T0112205@fremm3 [] Desktop $ ls -l | wc -l
5
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand(
)*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
System.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
System.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $
Le problème c'est qu'une des possibilités ne sort jamais et que parfois cela retourne un blanc. C'est normal ?
T0112205@fremm3 [] Desktop $ ls -l
total 24
-rw-r--r-- 1 T0112205 webalizer 4483 Oct 7 13:47 Home.desktop
-rw-r--r-- 1 T0112205 webalizer 3779 Oct 7 13:47 System.desktop
drwxrwxr-x 2 T0112205 webalizer 4096 Oct 19 16:18 toto/
-rw-r--r-- 1 T0112205 webalizer 5076 Oct 7 13:47 trash.desktop
T0112205@fremm3 [] Desktop $ ls -l | wc -l
5
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand(
)*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
System.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
System.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
T0112205@fremm3 [] Desktop $
Le problème c'est qu'une des possibilités ne sort jamais et que parfois cela retourne un blanc. C'est normal ?
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 16:37
19 oct. 2009 à 16:37
essaye avec NR-1 pour éviter le blanc
ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
j'ai essayé dans un dossier de 3 fichiers et un dossier, ils sortent tous
$ ls|wc -l
4
$ ls -n
total 12
-rw-r--r-- 1 1000 1000 567 2009-10-17 10:43 gnome-at-session.desktop
drwxr-xr-x 2 1000 1000 4096 2009-10-19 16:32 toto
-rw-r--r-- 1 1000 1000 461 2009-06-12 08:51 vino-server.desktop
-rw-r--r-- 1 1000 1000 0 2009-10-19 16:32 zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
vino-server.desktop
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
gnome-at-session.desktop
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
vino-server.desktop
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
gnome-at-session.desktop
ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
j'ai essayé dans un dossier de 3 fichiers et un dossier, ils sortent tous
$ ls|wc -l
4
$ ls -n
total 12
-rw-r--r-- 1 1000 1000 567 2009-10-17 10:43 gnome-at-session.desktop
drwxr-xr-x 2 1000 1000 4096 2009-10-19 16:32 toto
-rw-r--r-- 1 1000 1000 461 2009-06-12 08:51 vino-server.desktop
-rw-r--r-- 1 1000 1000 0 2009-10-19 16:32 zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
vino-server.desktop
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
gnome-at-session.desktop
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
vino-server.desktop
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
zzz
$ ls|awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
gnome-at-session.desktop
latoopa
Messages postés
258
Date d'inscription
dimanche 11 octobre 2009
Statut
Membre
Dernière intervention
5 janvier 2012
32
19 oct. 2009 à 16:48
19 oct. 2009 à 16:48
Bonne nouvelle !
T0112205@fremm3 [] Desktop $ ls -l
total 24
-rw-r--r-- 1 T0112205 webalizer 4483 Oct 7 13:47 Home.desktop
-rw-r--r-- 1 T0112205 webalizer 3779 Oct 7 13:47 System.desktop
drwxrwxr-x 2 T0112205 webalizer 4096 Oct 19 16:18 toto/
-rw-r--r-- 1 T0112205 webalizer 5076 Oct 7 13:47 trash.desktop
T0112205@fremm3 [] Desktop $
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
System.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
Les 4 sont sortis et sans blanc ! En fait le -1 doit correspondre au rang d'une des données qui était tronquée et remplacée par un blanc. Je ne vois que ca comme explication...
En tout cas merci beaucoup pour ton aide et pour ta persistance, cette ligne va m'être super utile !
A+
Toopa
T0112205@fremm3 [] Desktop $ ls -l
total 24
-rw-r--r-- 1 T0112205 webalizer 4483 Oct 7 13:47 Home.desktop
-rw-r--r-- 1 T0112205 webalizer 3779 Oct 7 13:47 System.desktop
drwxrwxr-x 2 T0112205 webalizer 4096 Oct 19 16:18 toto/
-rw-r--r-- 1 T0112205 webalizer 5076 Oct 7 13:47 trash.desktop
T0112205@fremm3 [] Desktop $
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
System.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
toto/
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
trash.desktop
T0112205@fremm3 [] Desktop $ ls | awk '{x++;f[NR-1]=$0} ; END {srand();y=int(rand()*x) ; print f[y]}'
Home.desktop
Les 4 sont sortis et sans blanc ! En fait le -1 doit correspondre au rang d'une des données qui était tronquée et remplacée par un blanc. Je ne vois que ca comme explication...
En tout cas merci beaucoup pour ton aide et pour ta persistance, cette ligne va m'être super utile !
A+
Toopa
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
19 oct. 2009 à 16:54
19 oct. 2009 à 16:54
NR c'est le numéro de ligne qui commence à 1, donc si le int du nombre aléatoire est 0, il n'y avait pas de ligne 0
19 oct. 2009 à 12:49
var=$(ls -r1 /chemin/vers/le_repertoire/* | egrep -v '^$')
As-tu remplacé "/chemin/vers/le_repertoire/*" par le bon chemin (ou répertoire) au moins ?