#cli #tool #find #fields #tim #file #bray

bin+lib topfew

CLI to find high frequency occurrences in structured text files

7 releases

0.2.3 Aug 30, 2021
0.2.2 Feb 19, 2021
0.2.1 Nov 27, 2020
0.2.0 Oct 29, 2020
0.1.3 May 25, 2020

#1573 in Text processing

GPL-3.0 license

22KB
379 lines

topfew-rs: Rust implementation of Tim Bray's topfew tool

Tim Bray blogged about topfew, his Go implementation of a tool to replace the awk '{print $1}' access_log | sort | uniq -c | sort -rn | head -12 pipeline. This is a reimplementation of that tool in idiomatic stable Rust.

The initial Rust version was 2.9x faster than Tim's Go implementation; current main appears to be around 6.7x faster thanks to some additional optimizations. The Rust version currently has slightly fewer non-test SLOC than the Go version. Thanks to Thomas Andreas Jung for contributing substantial performance improvements.

topfew 0.1.0

USAGE:
    tf [OPTIONS] <file> --fields <fields>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -f, --fields <fields>    Fields to use as part of the line's key
    -n, --num <num>          Top number of matches to show [default: 10]
    -e, --regex <regex>      Regular expression used to split lines into fields [default: [ \t]]

ARGS:
    <file>    File to search

If you have the Rust toolchain installed, you can install it with cargo install topfew.

Dependencies

~9MB
~159K SLoC