# extract
[![Build Status](https://travis-ci.org/jelford/extract.svg?branch=master)](https://travis-ci.org/jelford/extract)
[![crates.io](https://img.shields.io/crates/v/extract.svg)](https://crates.io/crates/extract)
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`.