Sort or merge ASCII files line-by-line.
Sort lexicographically or on numeric key.
Multiple keys located by delimiters or by character position.
May sort upper case together with lower into dictionary order.
Optionally suppress duplicate data.
Topological sort \(em converts a partial order into a total order.
Collapse successive duplicate lines
Publish lines that were originally unique,
May give redundancy count for each line.
Do one-to-one character translation according to
May coalesce selected repeated characters.
May delete selected characters.
Report line changes, additions and deletions necessary to bring two files
May produce an editor script to convert one file into another.
A variant compares two new versions against one old one.
Identify common lines in two sorted files.
Output in up to 3 columns shows lines present in first file only,
present in both, and/or present in second only.
Combine two files by joining records that have identical keys.
Print all lines in a file that satisfy
a pattern as used in the editor ED.
May print all lines that fail to match.
May print first hit in each file.
Binary search in sorted file for lines
Count the lines, ``words'' (blank-separated strings) and characters in a file.
Stream-oriented version of ED.
Can perform a sequence of editing operations on
input stream of unbounded length.
Lines may be selected by address or range of addresses.
Control flow and conditional testing.
Pattern scanning and processing language.
Searches input for patterns, and
performs actions on each line of input that satisfies
Patterns include regular expressions,
arithmetic and lexicographic conditions,
boolean combinations and ranges of these.
Data treated as string or numeric as appropriate.
Can break input into fields;
Variables and arrays (with non-numeric subscripts).
Full set of arithmetic operators and control flow.
Multiple output streams to files and pipes.
Output can be formatted as desired.