# phpman > man > SORT(1)

> **TLDR:** Sort lines of text files.
>
- Sort a file in ascending order:
  `sort {{path/to/file}}`
- Sort a file in descending order:
  `sort {{-r|--reverse}} {{path/to/file}}`
- Sort a file in case-insensitive way:
  `sort {{-f|--ignore-case}} {{path/to/file}}`
- Sort a file using numeric rather than alphabetic order:
  `sort {{-n|--numeric-sort}} {{path/to/file}}`
- Sort `/etc/passwd` by the 3rd field onward of each line numerically, using `:` as a field separator:
  `sort {{-t|--field-separator}} : {{-k|--key}} 3n /etc/passwd`
- As above, but when items in the 3rd field are equal, sort by the 4th field by numbers with exponents:
  `sort {{-t|--field-separator}} : {{-k|--key}} 3,3n {{-k|--key}} 4,4g /etc/passwd`
- Sort a file preserving only unique lines:
  `sort {{-u|--unique}} {{path/to/file}}`
- Sort a file, printing the output to the specified output file (can be used to sort a file in-place):
  `sort {{-o|--output}} {{path/to/output_file}} {{path/to/input_file}}`

*Source: tldr-pages*

---

[SORT(1)](https://www.chedong.com/phpMan.php/man/SORT/1/markdown)                                     User Commands                                    [SORT(1)](https://www.chedong.com/phpMan.php/man/SORT/1/markdown)



## NAME
       sort - sort lines of text files

## SYNOPSIS
       **sort** [_OPTION_]... [_FILE_]...
       **sort** [_OPTION_]... _--files0-from=F_

## DESCRIPTION
       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:

### -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
              shuffle, but group identical keys.  See [shuf(1)](https://www.chedong.com/phpMan.php/man/shuf/1/markdown)

       **--random-source**=_FILE_
              get random bytes from FILE

### -r --reverse
              reverse the result of comparisons

       **--sort**=_WORD_
              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:

       **--batch-size**=_NMERGE_
              merge at most NMERGE inputs at once; for more use temp files

### -c --check --check
              check for sorted input; do not sort

### -C --check --check
              like **-c**, but do not report first bad line

       **--compress-program**=_PROG_
              compress temporaries with PROG; decompress them with PROG **-d**

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

       **--files0-from**=_F_
              read  input from the files specified by NUL-terminated names in file F; If F is - then
              read names from standard input

### -k --key
              sort via a key; KEYDEF gives location and type

### -m --merge
              merge already sorted files; do not sort

### -o --output
              write result to FILE instead of standard output

### -s --stable
              stabilize sort by disabling last-resort comparison

### -S --buffer-size
              use SIZE for main memory buffer

### -t --field-separator
              use SEP instead of non-blank to blank transition

### -T --temporary-directory
              use DIR for temporaries, not $TMPDIR or _/tmp_; multiple options specify multiple direc‐
              tories

       **--parallel**=_N_
              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
              line delimiter is NUL, not newline

       **--help** display this help and exit

### --version
              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  op‐
       tions  [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.

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

## AUTHOR
       Written by Mike Haertel and Paul Eggert.

## REPORTING BUGS
       GNU coreutils online help: <<https://www.gnu.org/software/coreutils/>>
       Report any translation bugs to <<https://translationproject.org/team/>>

## COPYRIGHT
       Copyright © 2020 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3  or  later
       <<https://gnu.org/licenses/gpl.html>>.
       This  is free software: you are free to change and redistribute it.  There is NO WARRANTY, to
       the extent permitted by law.

## SEE ALSO
       [shuf(1)](https://www.chedong.com/phpMan.php/man/shuf/1/markdown), [uniq(1)](https://www.chedong.com/phpMan.php/man/uniq/1/markdown)

       Full documentation <<https://www.gnu.org/software/coreutils/sort>>
       or available locally via: info '(coreutils) sort invocation'



GNU coreutils 8.32                          January 2026                                     [SORT(1)](https://www.chedong.com/phpMan.php/man/SORT/1/markdown)
