tsort - topological sort
[XSI] tsort [file]
The tsort utility shall write to standard output a totally ordered list of items consistent with a partial ordering of items contained in the input.
The application shall ensure that the input consists of pairs of items (non-empty strings) separated by <blank>s. Pairs of different items indicate ordering. Pairs of identical items indicate presence, but not ordering.
The following operand shall be supported:
- A pathname of a text file to order. If no file operand is given, the standard input shall be used.
The standard input shall be a text file that is used if no file operand is given.
The input file named by the file operand is a text file.
The following environment variables shall affect the execution of tsort:
- Provide a default value for the internationalization variables that are unset or null. (See the Base Definitions volume of IEEE Std 1003.1-2001, Section 8.2, Internationalization Variables for the precedence of internationalization variables used to determine the values of locale categories.)
- If set to a non-empty string value, override the values of all the other internationalization variables.
- Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multi-byte characters in arguments and input files).
- Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard error.
- Determine the location of message catalogs for the processing of LC_MESSAGES .
The standard output shall be a text file consisting of the order list produced from the partially ordered input.
The standard error shall be used only for diagnostic messages.
The following exit values shall be returned:
- Successful completion.
- An error occurred.
The LC_COLLATE variable need not affect the actions of tsort. The output ordering is not lexicographic, but depends on the pairs of items given as input.
The command:tsort <<EOF a b c c d e g g f g e f h h EOF
produces the output:a b c d e f g h
First released in Issue 2.
The normative text is reworded to avoid use of the term "must" for application requirements.