= sule :toc: left :sectnums:
suln
is a CLI that prints surroundings of line number with grep
.
== Usage
Basic usage is:
suln
use file name and line number with grep
.
And suln
provides you with continuation of grep
.
For example, simply grep to search with file name and line number.
$ grep -Hn Usage README.adoc
And, add suln -A
(--after-context
).
suln
outputs the continuation of an interrupted search result.
$ grep -Hn Usage README.adoc | suln -A 2 README.adoc:7:== Usage README.adoc:8:
Use -B
(--before-context
) if you want to search before text.
$ grep -Hn Usage README.adoc | suln -B 2
README.adoc:5:suln
is a CLI that prints surroundings of line number with grep
.
README.adoc:6:
Use -C
(--context
) if you want to search before or after text.
$ grep -Hn Usage README.adoc | suln -C 2
README.adoc:5:suln
is a CLI that prints surroundings of line number with grep
.
README.adoc:6:
README.adoc:7:== Usage
README.adoc:8:
These options are same grep
.
$ grep --help | grep -Eo '(-[ABC].+=NUM)' -B, --before-context=NUM -A, --after-context=NUM
=== Usecase: searching JSON data
Here is an example of AND search for multiple keys in JSON.
Searches for id
where name
is bob
and age
is 18
.
This is not possible with grep
alone.
$ grep -C 2 bob testdata/example.json { "id": 31, "name": "bob", "age": 18
{ "id": 334, "name": "bob", "age": 4
Because, id
is disappear when search with age
.
$ grep -HnC 2 bob testdata/example.json | grep 'age.*18'
You must use many commands if you want to get id
.
$ grep -C 2 bob testdata/example.json | grep -Ev '^--$' | paste - - - - - | grep 'bob.age.18' | grep -Eo '"id[^,]+' '"' | awk '{print $2}'
Or, you must write complexity jq
query.
⟩ jq -r '.[] | select(.name == "bob" and .age == 18) | .id' testdata/example.json
suln
is useful if you would like to search more intuitive.
$ grep -HnC 2 bob testdata/example.json | grep 'age.*18' testdata/example.json-15- "age": 18
$ grep -HnC 2 bob testdata/example.json | grep 'age.*18' | suln -B 2 testdata/example.json:13: "id": 31, testdata/example.json:14: "name": "bob", testdata/example.json:15: "age": 18
⟩ grep -HnC 2 bob testdata/example.json | grep 'age.18' | suln -B 2 | grep 'id.31'
== Installation
Or, you can download and install from https://github.com/jiro4989/suln/releases[GitHub Releases].
== LICENSE
MIT
== For developer
=== Pre-requisite
=== Build
=== Test