80 votes

Quel est le moyen le plus simple de lire une ligne aléatoire d'un fichier en ligne de commande Unix ?

Quel est le moyen le plus simple de lire une ligne aléatoire d'un fichier en ligne de commande Unix ?

3voto

asalamon74 Points 3499

Une seule ligne de bash :

sed -n $((1+$RANDOM%`wc -l test.txt | cut -f 1 -d ' '`))p test.txt

Léger problème : nom de fichier en double.

2voto

Adam Rosenfield Points 176408

Voici un simple script Python qui fera l'affaire :

import random, sys
lines = open(sys.argv[1]).readlines()
print(lines[random.randint(0, len(lines))])

Utilisation :

python randline.py file_to_get_random_line_from

0voto

Baskar Points 35

Une autre façon d'utiliser ' awk '

awk NR==$((${RANDOM} % `wc -l < file.name` + 1)) file.name

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X