sort Cheatsheet
Quick reference for sorting text lines with sort in Linux
The `sort` command orders lines from files or standard input. This cheatsheet covers common sort options for numeric sorting, field-based sorting, unique lines, and practical pipeline usage.
Basic Syntax
Core sort command forms.
| Command | Description |
|---|---|
sort file.txt | Sort lines alphabetically (ascending) |
sort -r file.txt | Sort lines in reverse order |
sort -n file.txt | Sort numerically |
sort -nr file.txt | Sort numerically, largest first |
sort file1 file2 | Merge and sort multiple files |
Sort by Field
Sort lines by one column or key.
| Command | Description |
|---|---|
sort -k2 file.txt | Sort by second field |
sort -k2,2 file.txt | Sort using only field 2 as key |
sort -t: -k3,3n /etc/passwd | Sort by UID field in /etc/passwd |
sort -t, -k1,1 data.csv | Sort CSV by first column |
sort -k3,3 -k1,1 file.txt | Secondary sort: key 3, then key 1 |
Numeric and Human Sizes
Handle numbers and size suffixes correctly.
| Command | Description |
|---|---|
sort -n numbers.txt | Numeric sort |
sort -g values.txt | General numeric sort (floats/scientific notation) |
sort -h sizes.txt | Sort human-readable sizes (K, M, G) |
du -sh /var/* | sort -h | Sort du output by size |
sort -V versions.txt | Natural version sort (1.9 before 1.10) |
Unique and Check
Detect duplicates and verify sorted input.
| Command | Description |
|---|---|
sort -u file.txt | Sort and remove duplicate lines |
sort file.txt | uniq | Equivalent two-step unique output |
sort file.txt | uniq -c | Count duplicate occurrences |
sort -c file.txt | Check if file is sorted |
sort -C file.txt | Quiet sorted-check (status code only) |
In-Place and Output
Safe ways to write sorted results.
| Command | Description |
|---|---|
sort file.txt > sorted.txt | Write output to a new file |
sort -o file.txt file.txt | Sort in place safely |
sort -o out.txt in.txt | Write sorted output with -o |
sort -T /tmp bigfile.txt | Use temp directory for large sorts |
LC_ALL=C sort file.txt | Byte-order sort for predictable locale behavior |
Common Pipelines
Practical combinations with other commands.
| Command | Description |
|---|---|
grep -Eo '[[:alnum:]_]+' file.txt | sort | uniq -c | sort -rn | Top repeated words |
cut -d',' -f2 data.csv | sort | Sort one CSV column |
sort access.log | uniq -c | sort -rn | head | Most common log lines |
ps -eo user= | sort | uniq -c | sort -rn | Process count by user |
find . -type f | sort | Sorted file listing |
Troubleshooting
Quick checks for common sort issues.
| Issue | Check |
|---|---|
| Numbers sorted as text | Add -n (or -g for floats) |
| Size values ordered incorrectly | Use -h for human-readable sizes |
| Unexpected uppercase/lowercase order | Use -f or set locale with LC_ALL=C |
| File was emptied after sorting | Do not use sort file > file; use sort -o file file |
| Different results across systems | Verify locale and use explicit key options (-k) |
Related Guides
Use these guides for full sorting and text-processing workflows.
| Guide | Description |
|---|---|
| sort Command in Linux | Full sort guide with examples |
uniq | Remove and count duplicate lines after sorting |
| head Command in Linux | Show the first lines of output |
| wc Command in Linux | Count lines, words, and bytes |
| cut Command in Linux | Extract fields from text |
| grep Command in Linux | Search and filter matching lines |