Scroll to navigation

SORT(1) User Commands SORT(1)


sort - sort lines of text files


sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F


Write sorted concatenation of all FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too. Ordering options:

ignore leading blanks
consider only blanks and alphanumeric characters
fold lower case to upper case characters
compare according to general numerical value
consider only printable characters
compare (unknown) < 'JAN' < ... < 'DEC'
compare human readable numbers (e.g., 2K 1G)
compare according to string numerical value; see manual for which strings are supported
shuffle, but group identical keys. See shuf(1)
get random bytes from FILE
reverse the result of comparisons
sort according to WORD: general-numeric -g, human-numeric -h, month -M, numeric -n, random -R, version -V
natural sort of (version) numbers within text

Other options:

merge at most NMERGE inputs at once; for more use temp files
check for sorted input; do not sort
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
sort via a key; KEYDEF gives location and type
merge already sorted files; do not sort
write result to FILE instead of standard output
stabilize sort by disabling last-resort comparison
use SIZE for main memory buffer
use SEP instead of non-blank to blank transition
use DIR for temporaries, not $TMPDIR or /tmp; multiple options specify multiple directories
change the number of sorts run concurrently to N
with -c, check for strict ordering; without -c, output only the first of an equal run
line delimiter is NUL, 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. Use --debug to diagnose incorrect key usage.

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, R, Q.

*** 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.


GNU coreutils online help: <>
Report any translation bugs to <>


Copyright © 2024 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.


shuf(1), uniq(1)

Full documentation <>
or available locally via: info '(coreutils) sort invocation'

April 2024 GNU coreutils 9.5