
There comes a day in the life a developer when one needs to choose random lines from a text file. This is useful for a myriad of reasons, like taking a random sample of a CSV file, or shuffling the code of your coworkers, just for fun.
There are multiple tools in the UNIX toolbox to solve this problem, but the shuf utility is
by far the most elegant:
# shuffles a file and prints to stdout
shuf file
# pick 100 random lines from a file
shuf file -n 100
There’s also sort which has a --random-sort flag.
OSX
If run OS X, though, you might be surprised that there’s no shuf tool and that sort does
not really have a random-sort flag. Fortunately, there’s brew:
brew install coreutils
Now you can use either gshuf or gsort!