lack: A tool for querying logfmt style messages.
This is super hacky right now, but "works."
$ go generate ./... && go build ./... && go build
$ lack -format "<fmt string>" <query> < INPUT
$ echo "foo bar" | ./lack -format '%1 %2 %0' 'foo'
bar foo foo bar
$ echo "foo=bar" | ./lack -format '%{foo}' 'foo'
bar
$ echo "foo=bar baz" | ./lack -format '%{foo} %2' 'foo'
bar baz
$ echo "foo=bar baz" | ./lack -format '%{foo}\t%2' 'foo'
bar baz
$ echo "foo" | ./lack foo
foo
$ echo "foo bar" | ./lack '"foo bar"'
foo bar
$ echo "foo bar" | ./lack /fo+/
foo bar
$ echo "foo=hello" | ./lack foo=hello
foo=hello
$ echo "foo=hello" | ./lack foo!=bar
foo=hello
$ echo "foo=6" | ./lack foo!=6
$ echo "foo=6" | ./lack 'foo>=6'
foo=6
$ echo "foo=6" | ./lack 'foo<6'
$ echo "foo=6" | ./lack 'foo<=6'
foo=6
$ echo "foo=bar" | ./lack 'foo=/bar/'
foo=bar
$ echo "foo=baz" | ./lack 'foo!=/bar/'
foo=baz
$ echo "foo=1" | ./lack 'foo!=0'
foo=1
$ echo "foo=6 bar=10" | ./lack 'foo>5 & bar<15'
foo=6 bar=10
$ echo "foo=5 bar=15" | ./lack 'foo=5 | bar=20'
foo=5 bar=15