sort and uniq
sort — Sort lines
sort file.txt # Alphabetical sort
sort -r file.txt # Reverse sort
sort -n numbers.txt # Numeric sort
sort -k2 file.txt # Sort by 2nd column
sort -u file.txt # Sort and remove duplicates
sort -t: -k3 -n /etc/passwd # Sort passwd by UID
uniq — Remove duplicates
⚠️ uniq only removes adjacent duplicates. Always sort first!
sort file.txt | uniq # Remove duplicates
sort file.txt | uniq -c # Count occurrences
sort file.txt | uniq -d # Show only duplicates
sort file.txt | uniq -u # Show only unique lines
Practical examples
# Most common commands in history
history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10
# Count unique IP addresses in a log
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn
# Find duplicate lines
sort file.txt | uniq -d