Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SORT(1) 		     General Commands Manual			 SORT(1)

NAME
     sort - sort and/or merge files

SYNOPSIS
     sort [ -cmuMbdfinrwtx ] [ +pos1 [ -pos2 ] ...  ] ...  [ -k pos1 [ ,pos2 ] ]
     ...
	  ' [ -o output ] [ -T dir ...	] [ option ...	] [ file ...  ]

DESCRIPTION
     Sort  sorts  lines  of  all the files together and writes the result on the
     standard output.  If no input  files  are	named,	the  standard  input  is
     sorted.

     The  default sort key is an entire line.  Default ordering is lexicographic
     by runes.	The ordering is affected globally by the following options,  one
     or more of which may appear.

     -M     Compare  as  months.   The first three non-white space characters of
	    the field are folded to upper case and  compared  so  that	precedes
	    etc.  Invalid fields compare low to

     -b     Ignore leading white space (spaces and tabs) in field comparisons.

     -d     `Phone  directory' order: only letters, accented letters, digits and
	    white space are significant in comparisons.

     -f     Fold lower case letters onto upper case.   Accented  characters  are
	    folded to their non-accented upper case form.

     -i     Ignore  characters	outside  the ASCII range 040-0176 in non-numeric
	    comparisons.

     -w     Like -i, but ignore only tabs and spaces.

     -n     An initial numeric string, consisting of optional white  space,  op-
	    tional  plus  or  minus  sign, and zero or more digits with optional
	    decimal point, is sorted by arithmetic value.

     -g     Numbers, like -n but with optional e-style exponents, are sorted  by
	    value.

     -r     Reverse the sense of comparisons.

     -tx    `Tab character' separating fields is x.

     The  notation +pos1 -pos2 restricts a sort key to a field beginning at pos1
     and ending just before pos2.  Pos1 and pos2 each have the form m.n, option-
     ally followed by one or more of the flags Mbdfginr, where m tells a  number
     of  fields  to  skip from the beginning of the line and n tells a number of
     characters to skip further.  If any flags are present they override all the
     global ordering options for this key.  A missing .n  means  .0;  a  missing
     -pos2  means the end of the line.	Under the -tx option, fields are strings
     separated by x; otherwise fields are non-empty strings separated  by  white
     space.   White  space before a field is part of the field, except under op-
     tion -b.  A b flag may be attached independently to pos1 and pos2.

     The notation -k pos1[,pos2] is how POSIX sort defines fields: pos1 and pos2
     have the same format but different meanings.  The value of m  is  origin  1
     instead of origin 0 and a missing .n in pos2 is the end of the field.

     When  there  are multiple sort keys, later keys are compared only after all
     earlier keys compare equal.  Lines that otherwise compare equal are ordered
     with all bytes significant.

     These option arguments are also understood:

     -c 	Check that the single input file is sorted according to the  or-
		dering rules; give no output unless the file is out of sort.

     -m 	Merge; assume the input files are already sorted.

     -u 	Suppress  all but one in each set of equal lines.  Ignored bytes
		and bytes outside keys do not participate in this comparison.

     -o 	The next argument is the name of an output file to  use  instead
		of the standard output.  This file may be the same as one of the
		inputs.

     -Tdir	Put temporary files in dir rather than in /var/tmp.

EXAMPLES
     Print in alphabetical order all the unique spellings
	    in	a  list  of words where capitalized words differ from uncapital-
	    ized.

     Print the users file
	    sorted by user name (the second colon-separated field).

     Print the first instance of each month in an already sorted file.
	    Options -um with just one input file make the  choice  of  a  unique
	    representative from a set of equal lines predictable.

     grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://'
	    A stable sort: input lines that compare equal will come out in their
	    original order.

FILES
     /var/tmp/sort.<pid>.<ordinal>

SOURCE
     /src/cmd/sort.c

SEE ALSO
     uniq((1)), look((1))

DIAGNOSTICS
     Sort comments and exits with non-null status for various trouble conditions
     and for disorder discovered under option -c.

BUGS
     An  external  null  character  can be confused with an internally generated
     end-of-field character.  The result can make a sub-field not sort less than
     a longer field.

     Some of the options, e.g.	-i and -M, are hopelessly provincial.

									 SORT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sort&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help