URL: https://linuxfr.org/forums/programmation-shell/posts/choisir-un-fichier-au-hasard-dans-un-r%C3%A9pertoire Title: Choisir un fichier au hasard dans un répertoire Authors: Frédéric Heulin Date: 2006年10月06日T22:28:16+02:00 Tags: Score: 0 Voilà ma problématique : - je lance mlterm en utilisant l'option -p pour changer l'image de fond du terminal - j'ai un répertoire d'image qui va bien. Les images ont un nom quelconque et je ne veux pas changer ça. - je cherche simplement à choisir de façon aléatoire un nom d'image dans mon répertoire de manière à avoir un affichage sympa et varié. En utilisant find, $RANDOM, grep et deux trois autres outils GNU, j'en suis arrivé à cette solution ... que je trouve laide ! : mclient -f green -s false -w 12 -p `find /home/talineo/.fehbg_img/ -type f -maxdepth 1 | grep -n "" | grep "^\`expr $RANDOM % \\\`find /home/talineo/.fehbg_img/ -type f -maxdepth 1\\\` + 1\`:" | cut -d ":" -f 2` & Bon évidemment j'ai placé sur différentes lignes par dépit mais je cherche à faire plus compact. L'explication de ce pavé : - j'affiche un liste des fichiers à la racine du répertoire d'image (le premier find) - je numérote le tout (grep -n "") - je choisis un numéro en fesant un grep sur $RANDOM modulo le nombre d'image dans le repertoire d'image (find ... | wc -l) - et enfin je récupère le nomdu fichier dans l'entrée sélectionné (cut) - ouf ... Je suis sur qu'il y a beaucoup plus simple mais là je sèche un peu ... J'ai tenté d'utiliser les tee, redirections sans grand succès pour ne pas faire le find plusieurs fois notamment. Sinon je me dis que awk pourrait remplir cette tache mais j'avoue mettre plus penché sur sed pour le moment. ou alors perl ou alors la solution simple limpide que je n'ai pas vu ! :)

AltStyle によって変換されたページ (->オリジナル) /