Count occurrences

2 snippets across 2 stacks — Bash & Linux, Python

SHBash & Linux

Filter Duplicate Lines

SH · File Content
syntax
uniq [options] [input [output]]
example
sort access.log | uniq -c | sort -rn | head -20
output
    847 GET /api/users
    623 GET /api/health
    412 POST /api/login

Note uniq only removes adjacent duplicates, so you almost always need to sort first. -c prefixes each line with its count, -d shows only duplicates, -i ignores case.

PYPython

defaultdict

PY · Dictionaries
syntax
from collections import defaultdict
dd = defaultdict(factory)
example
from collections import defaultdict

word_count = defaultdict(int)
for word in "the cat sat on the mat".split():
    word_count[word] += 1
print(dict(word_count))
output
{'the': 2, 'cat': 1, 'sat': 1, 'on': 1, 'mat': 1}

Note defaultdict auto-creates missing keys using the factory function. Common factories: int (0), list ([]), set (set()).