sort — sort lines of text files


sort [OPTION...] [FILE...]

sort [OPTION...] −−files0−from=F


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'

−h, −−human−numeric−sort

compare human readable numbers (e.g., 2K 1G)

−n, −−numeric−sort

compare according to string numerical value

−R, −−random−sort

sort by random hash of keys


get random bytes from FILE

−r, −−reverse

reverse the result of comparisons


sort according to WORD: general−numeric −g, human−numeric −h, month −M, numeric −n, random −R, version −V

−V, −−version−sort

natural sort of (version) numbers within text

Other options:


merge at most NMERGE inputs at once; for more use temp files

−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 temporaries with PROG; decompress them with PROG −d


annotate the part of the line used to sort, and warn about questionable usage to stderr


read input from the files specified by NUL−terminated names in file F; If F is − then read names from standard input

−k, −−key=KEYDEF

sort via a key; KEYDEF gives location and type

−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


change the number of sorts run concurrently to N

−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


display this help and exit


output version information and exit

KEYDEF is F[.C][OPTS][,F[.C][OPTS]] for start and stop position, where F is a field number and C a character position in the field; both are origin 1, and the stop position defaults to the line's end. 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 [bdfgiMhnRrV], 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.


Written by Mike Haertel and Paul Eggert.


Report sort bugs to bug−

GNU coreutils home page: <>

General help using GNU software: <>

Report sort translation bugs to <>



The full documentation for sort is maintained as a Texinfo manual. If the info and sort programs are properly installed at your site, the command

  • info coreutils 'sort invocation'

should give you access to the complete manual.


Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <>.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.