ランダムソートもできる。それがsortコマンド。まずはperlで適当な文字を出力するテスト。これをネタにソートのテストをする。
$ perl -le 'foreach(0..10){print}' 0 1 2 3 4 5 6 7 8 9 10
-R オプションはランダムソート。2回目のランダムソートは1回目のそれと異なる。
$ perl -le 'foreach(0..10){print}' | sort -R 7 2 4 1 8 5 10 0 6 9 3 $ perl -le 'foreach(0..10){print}' | sort -R 1 3 10 5 4 6 8 0 7 2 9
オプション無しは辞書配列ソート。
$ perl -le 'foreach(0..10){print}' | sort 0 1 10 2 3 4 5 6 7 8 9
-n オプションは数字配列ソート。
$ perl -le 'foreach(0..10){print}' | sort -n 0 1 2 3 4 5 6 7 8 9 10
同じミスを繰り返さないように最後にhelpを載せておこう。
$ sort --help Usage: sort [OPTION]... [FILE]... Write sorted concatenation of all FILE(s) to standard output. Mandatory arguments to long options are mandatory for short options too. Ordering options: -b, --ignore-leading-blanks ignore leading blanks -d, --dictionary-order consider only blanks and alphanumeric characters -f, --ignore-case fold lower case to upper case characters -g, --general-numeric-sort compare according to general numerical value -i, --ignore-nonprinting consider only printable characters -M, --month-sort compare (unknown) < `JAN' < ... < `DEC' -n, --numeric-sort compare according to string numerical value -R, --random-sort sort by random hash of keys --random-source=FILE get random bytes from FILE (default /dev/urandom) -r, --reverse reverse the result of comparisons Other options: -c, --check, --check=diagnose-first check for sorted input; do not sort -C, --check=quiet, --check=silent like -c, but do not report first bad line --compress-program=PROG compress temporaries with PROG; decompress them with PROG -d -k, --key=POS1[,POS2] start a key at POS1, end it at POS2 (origin 1) -m, --merge merge already sorted files; do not sort -o, --output=FILE write result to FILE instead of standard output -s, --stable stabilize sort by disabling last-resort comparison -S, --buffer-size=SIZE use SIZE for main memory buffer -t, --field-separator=SEP use SEP instead of non-blank to blank transition -T, --temporary-directory=DIR use DIR for temporaries, not $TMPDIR or /tmp; multiple options specify multiple directories -u, --unique with -c, check for strict ordering; without -c, output only the first of an equal run -z, --zero-terminated end lines with 0 byte, not newline --help display this help and exit --version output version information and exit POS is F[.C][OPTS], where F is the field number and C the character position in the field; both are origin 1. If neither -t nor -b is in effect, characters in a field are counted from the beginning of the preceding whitespace. OPTS is one or more single-letter ordering options, which override global ordering options for that key. If no key is given, use the entire line as the key. SIZE may be followed by the following multiplicative suffixes: % 1% of memory, b 1, K 1024 (default), and so on for M, G, T, P, E, Z, Y. With no FILE, or when FILE is -, read standard input. *** WARNING *** The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values. Report bugs to <bug-coreutils@gnu.org>.