2 releases

Uses old Rust 2015

0.1.1 Mar 11, 2017
0.1.0 Mar 6, 2017

#6 in #capture-group

MIT/Apache

10KB
246 lines

extract

Build Status crates.io

Extract text from text using a regex - a simple way to consume keyed fields from poorly-(or un-)structured text.

Usage

Extract accepts as an argument a regex with a single capture group, and will read lines from stdin, printing captured values.

> echo "hello subject=world" | extract "subject=(.+)"
world

extract keeps reading until it reaches the end of input, processing lines one-at-a-time:

> cat multiline
Hello subject=world
Hello subject=Dorris
> cat multiline | extract "subject=(\w+)"
world
Dorris

Installation

From source:

cargo install

From crates.io:

cargo install extract

License

MIT / Apache 2.

Issues / Contributing

Feel free to open an issue / PR. I'd be interested in adding support for more structured outputs (e.g. JSON from a regex with named capture groups).

FAQs

  • How is this different to grep -o?

extract only prints the catured group, not the whole match.

  • Can't you use sed for this?

Not first time, normally. Maybe your sed-fu is better than mine. This tool was originally created when I needed to extract ids from the output of xinput --list, in frustration after the fourth attempt to deliver the correct incantations to sed.

Dependencies

~7MB
~144K SLoC