Understanding the `sort` Command in Linux
In Linux, the sort command is a text processing utility that arranges lines in
text and output files. It sorts lines of text alphabetically or numerically,
based on a field or character position, making it a versatile tool for managing
text-based data.
Syntax
The general syntax for the sort command is:
sort [OPTION]... [FILE]...
Here, [OPTION] specifies how the sort command should behave, while [FILE]
denotes the files that need to be sorted. If no file is provided, sort will
read from the standard input.
Options Table
| Option | Shorthand | Description |
|---|---|---|
--dictionary-order | -d | Consider only blanks and alphanumeric characters. |
--ignore-case | -f | Perform case-insensitive sorting. |
--numeric-sort | -n | Compare according to numerical value. |
--reverse | -r | Reverse the sort, i.e., highest to lowest. |
--unique | -u | Output only the first of an equal run. |
--key | -k | Define a key field to sort by. |
--output | -o | Output file name. |
--help | Display the help message and exit. | |
--version | Display the version information and exit. |
Basic Usage
Alphabetical Sorting
Create a text file named names.txt with the following content:
Eva
David
Alice
Frank
Cathy
Use the sort command to sort the lines alphabetically:
sort names.txt
Output:
Alice
Cathy
David
Eva
Frank
Numerical Sorting
Create a file named numbers.txt:
15
9
100
32
To sort the numbers, use the -n option:
sort -n numbers.txt
Output:
9
15
32
100
Case-Insensitive Sorting
For a case-insensitive sort, use the -f option. Assuming names.txt has:
Eva
david
Alice
Frank
CATHY
Run:
sort -f names.txt
Output:
Alice
CATHY
david
Eva
Frank
Advanced Usage
Sorting By Column
Create a file called students.txt:
Alice 85
David 92
Eva 78
Frank 90
To sort the students by scores:
sort -k2 -n students.txt
Output:
Eva 78
Alice 85
Frank 90
David 92
Unique Sorting
To sort a file while eliminating duplicate lines, use the -u option. Given
a duplicates.txt file:
apple
orange
apple
banana
Run:
sort -u duplicates.txt
Output:
apple
banana
orange
Combining Multiple Options
You can combine multiple options for a more complex sort. To sort students.txt
numerically by scores in descending order:
sort -k2 -n -r students.txt
Output:
David 92
Frank 90
Alice 85
Eva 78
Conclusion
The sort command is a powerful text-processing utility for organizing lines in
text files based on various criteria like alphabetical order, numerical value,
and even complex key-based sorting. It is often used in combination with other
text processing commands like awk, grep, and cut to create powerful text
manipulation pipelines. Learning how to use sort effectively can significantly
enhance your text processing skills in Linux.
What Can You Do Next 🙏😊
If you liked the article, consider subscribing to Cloudaffle, my YouTube Channel, where I keep posting in-depth tutorials and all edutainment stuff for software developers.