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

FreeBSD Manual Pages

  
 
  

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

NAME
       sort - sort or merge files

SYNTAX
       sort [ -mubdfinrt_________x ] [ +pos1  [	-pos2 ]	] [ -o name ] [	-T di-
       rectory ] [ files ]

DESCRIPTION
       Sort  sorts lines of all	the named files	together and writes the	result
       on the standard output.	If no input files are named, the standard  in-
       put is sorted.  The name	"-" also means read input from standard	input.

       The  default  sort  key is an entire line.  Default ordering is lexico-
       graphic by bytes	in the machine collating sequence.   The  ordering  is
       affected	 globally  by  the following options, one or more of which may
       appear.

       b    Ignore leading blanks (spaces and tabs) in field comparisons.

       d    `Dictionary' order:	only letters, digits and blanks	 are  signifi-
	    cant in comparisons.

       f    Fold upper case letters onto lower case.

       i    Ignore characters outside the ASCII	range (040-0176) in nonnumeric
	    comparisons.

       n    An initial numeric string, consisting of optional blanks, optional
	    minus  sign,  and zero or more digits with optional	decimal	point,
	    is sorted by arithmetic value.  Option n implies option b.

       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, optionally followed	by one or more of the flags  bdfinr,  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.  If	the  b
       option  is in effect n is counted from the first	nonblank in the	field;
       b is attached independently to pos2.  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 nonempty nonblank  strings
       separated by blanks.

       When  there  are	multiple sort keys, later keys are compared only after
       all earlier keys	compare	equal.	Lines that otherwise compare equal are
       ordered on the basis of all bytes in the	line.

       These option arguments are also understood:

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

       m    Merge only,	the input files	are already sorted.

       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  in-
	    puts.

       T    The	 next  argument	 is the	name of	a directory in which temporary
	    files should be made.

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

FILES
       /usr/tmp/stm*	   first try for temporary files
       /tmp/*		   second trie for temporary files

SEE ALSO
       comm(1),	join(1), rev(1), uniq(1)

DIAGNOSTICS
       Comments	 and  exits with nonzero status	for various trouble conditions
       and for disorder	discovered under option	-c.

BUGS
       Very long lines are silently truncated.

EXAMPLES
       Sort a file called list in numeric order:

	       sort  -n	 list

       Sort by field 3 in file list where fields are separated by ";":

	       sort  -t;  +2  -3  list

       Sort by columns 10 to 24	in numeric order:

	       sort  -n	 +0.9  -0.24  list

       Take the	case where columns 10 to 24 are	dates where each  two  columns
       is  respectively	 year,	month, day, hour, minute, and columns 20 to 24
       are seconds such	as 20.34.  Furthermore,	 assume	 the  seconds  can  be
       blank.  Then sorting must not be	numeric	since these are	left justified
       numbers and lexicographic sorting is required.

	       sort  +0.9  -0.24  list

       Sort  by	 columns 3 and 4 of field 10 where the fields are separated by
       ":":

	       sort  -t:  +9.2	-9.4  list

       Print in	alphabetical order all the  unique  spellings  in  a  list  of
       words.  Capitalized words differ	from uncapitalized.

	       sort  -u	 +0f  +0  list

       Print  the  password file (passwd(5)) sorted by user id number (the 3rd
       colon-separated field).

	       sort  -t:  +2n  /etc/passwd

       Print the first instance	of each	month in an  already  sorted  file  of
       (month day) entries.  The options -um with just one input file make the
       choice  of  a  unique  representative  from  a  set of equal lines pre-
       dictable.

	       sort  -um  +0  -1 dates

								       SORT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sort&manpath=2.9.1+BSD>

home | help