Usage demo • Installation • Command-line completion • Usage • Contributing • License
uc is a simple utility for counting unique lines.
$ wc -l data.txt
18408096 data.txt
$ hyperfine 'sort -u data.txt | wc -l' 'uc -np data.txt'
Benchmark 1: sort -u data.txt | wc -l
Time (mean ± σ): 16.030 s ± 0.181 s [User: 86.713 s, System: 1.165 s]
Range (min … max): 15.699 s … 16.324 s 10 runs
Benchmark 2: uc -np data.txt
Time (mean ± σ): 2.889 s ± 0.101 s [User: 2.435 s, System: 0.454 s]
Range (min … max): 2.721 s … 3.065 s 10 runs
Summary
uc -np data.txt ran
5.55 ± 0.20 times faster than sort -u data.txt | wc -l
To build the uc from scratch, make sure you have a working Go 1.24+ (instructions), then:
go install github.com/essentialkaos/uc@latest
sudo dnf install -y https://pkgs.kaos.st/kaos-repo-latest.el$(grep 'CPE_NAME' /etc/os-release | tr -d '"' | cut -d':' -f5).noarch.rpm
sudo dnf install ucYou can download prebuilt binaries for Linux from EK Apps Repository.
To install the latest prebuilt version, do:
bash <(curl -fsSL https://apps.kaos.st/get) ucSince version 3.1.0 you can update uc to the latest release using self-update feature:
uc --updateThis command will runs a self-update in interactive mode. If you want to run a quiet update (no output), use the following command:
uc --update=quietNote
Please note that the self-update feature only works with binaries that are downloaded from the EK Apps Repository. Binaries from packages do not have a self-update feature and must be upgraded via the package manager.
You can generate completion for bash, zsh or fish shell.
Bash:
uc --completion=bash | sudo tee /etc/bash_completion.d/uc > /dev/nullZSH:
uc --completion=zsh | sudo tee /usr/share/zsh/site-functions/uc > /dev/nullFish:
uc --completion=fish | sudo tee /usr/share/fish/vendor_completions.d/uc.fish > /dev/nullYou can generate man page for uc using next command:
uc --generate-man | sudo gzip > /usr/share/man/man1/uc.1.gz| Branch | Status |
|---|---|
master |
|
develop |
Before contributing to this project please read our Contributing Guidelines.
