#word-count #words #tally #count #command-line #command-line-tool

bin+lib word-tally

Output a tally of the number of times unique words appear in source input

23 releases (15 breaking)

new 0.16.0 Feb 13, 2025
0.15.0 Nov 21, 2024
0.14.0 Nov 6, 2024
0.8.2 Jul 25, 2024

#756 in Command line utilities

Download history 113/week @ 2024-11-03 9/week @ 2024-11-10 129/week @ 2024-11-17 16/week @ 2024-11-24 13/week @ 2024-12-01 27/week @ 2024-12-08 102/week @ 2025-02-09

102 downloads per month

MIT license

25KB
427 lines

word-tally

Crates.io docs.rs GitHub Actions Workflow Status

Output a tally of the number of times unique words appear in source input.

Usage

Usage: word-tally [OPTIONS] [PATH]

Arguments:
  [PATH]  File path to use as input rather than stdin ("-") [default: -]

Options:
  -s, --sort <ORDER>       Sort order [default: desc] [possible values: desc, asc, unsorted]
  -c, --case <FORMAT>      Case normalization [default: lower] [possible values: original, upper, lower]
  -m, --min-chars <COUNT>  Exclude words containing fewer than min chars
  -M, --min-count <COUNT>  Exclude words appearing fewer than min times
  -e, --exclude <WORDS>    Exclude words from a comma-delimited list
  -d, --delimiter <VALUE>  Delimiter between keys and values [default: " "]
  -o, --output <PATH>      Write output to file rather than stdout
  -v, --verbose            Print verbose details
  -h, --help               Print help
  -V, --version            Print version

Examples

> word-tally README.md | head -n3
tally 22
word 20
https 11
> word-tally --delimiter="," --output="tally.csv" README.md

Installation

cargo install word-tally

Cargo.toml

Add word-tally as a dependency.

[dependencies]
word-tally = "0.16.0"

Or optionally enable JSON serialization and deserialization with Serde.

[dependencies]
word-tally = { version = "0.16.0", features = ["serde"] }

Documentation

https://docs.rs/word-tally

Tests & benchmarks

Clone the repository.

git clone https://github.com/havenwood/word-tally
cd word-tally

Run the tests.

cargo test

Or run the tests with the Serde feature included.

cargo test --features serde

And run the benchmarks.

cargo bench

Dependencies

~2.2–3.5MB
~57K SLoC