Ubuntu Linux has a great tool called shuf, which works like head except that it gives you ten random lines. I couldn't find it on Homebrew. What is the simplest way of installing it on OS X?
You can install coreutils with
brew install coreutils.
shuf will be linked as
gshuf. Read the caveats when you install coreutils.
Yet another solution is to learn about the tools supplied by the vendor. Certainly you could chain
head and get the same results.
jot -r "$(wc -l FILE)" 1 | paste - FILE | sort -n | cut -f 2- | head -n 10
- jot produces a random number from 1 to the number of lines in FILE for each line
- paste pastes the random number to each line in FILE
- sort sorts numeric each line
- cut removes the random number from each line
- head outputs the first 10 lines
You can install coreutils with Macports as
sudo port install coreutils
This will put GNU core utils in /opt/local/bin with a g prepended
Another option is to install
randomize-lines(homebrew) package, which has an
rl command which has similar functionality to shuf.
Usage: rl [OPTION]... [FILE]... Randomize the lines of a file (or stdin). -c, --count=N select N lines from the file -r, --reselect lines may be selected multiple times -o, --output=FILE send output to file -d, --delimiter=DELIM specify line delimiter (one character) -0, --null set line delimiter to null character (useful with find -print0) -n, --line-number print line number with output lines -q, --quiet, --silent do not output any errors or warnings -h, --help display this help and exit -V, --version output version information and exit