NAME
greple -Mjq - greple module for jq frontend
SYNOPSIS
greple -Mjq --glob JSON-DATA --IN label pattern
DESCRIPTION
This is an experimental module for App::Greple command to provide interface for jq(1) command.
You can search object .commit.author.name includes Marvin like this:
greple -Mjq --IN .commit.author.name Marvin
Search first name field including Marvin under .commit:
greple -Mjq --IN .commit..name Marvin
Search any author.name field including Marvin:
greple -Mjq --IN author.name Marvin
Please be aware that this is just a text matching tool for indented
result of jq(1) command. So, for example, .commit.author
includes everything under it and it maches committer field name.
Use jq(1) filter for more complex and precise operation.
CAUTION
greple(1) commands read entire input before processing. So it should not be used for large amount of data or inifinite stream.
OPTIONS
-
--IN label pattern
Search pattern included in label field.
Chacater
%can be used as a wildcard in label string. So%namematches labels end withname, andname%matches labels start withname.If the label is simple string like
name, it matches any level of JSON data.If the label string contains period (
.), it is considered as a nested labels. Name.namemaches onlynamelabel at the top level. Nameprocess.namemaches onlynameentry of someprocesshash.If labels are separated by two or more dots (
..), they don't have to have direct relationship.
LABEL SYNTAX
-
.file
fileat the top level. -
.file.path
pathunder.file. -
.file..path
pathin descendants of.file. -
path
pathat any level. -
file.path
file.pathat any level. -
file..path
Some
pathin descendatns of somefile. -
%path
Any labels end with
path. -
path%
Any labels start with
path. -
%path%
Any labels include
path.
EXAMPLES
Search from any name labels.
greple -Mjq --glob procmon.json --IN name _mina
Search from .process.name label.
greple -Mjq --glob procmon.json --IN .process.name _mina
Object .process.name contains _mina and .event contains
FORK.
greple -Mjq --glob procmon.json --IN .process.name _mina --IN .event FORK
Object ancestors contains 339 and .event contains FORK.
greple -Mjq --glob procmon.json --IN ancestors 339 --IN event FORK
Object *pid labels contains 803.
greple -Mjq --glob procmon.json --IN %pid 803
Object any _mira under .file and .event contains WRITE.
greple -Mjq --glob filemon.json --IN .file..path _mina --IN .event WRITE
TIPS
Use --all option to show entire data.
Use --nocolor option or set NO_COLOR=1 to disable colored
output.
Use --blockend= option to cancel showing block separator.
Use -o option to show only matched part.
Sine this module implements original search funciton, greple(1)
-i does not take effect. Set modifier in regex like
(?i)pattern if you want case-insensitive match.
SEE ALSO
App::Greple, https://github.com/kaz-utashiro/greple
https://stedolan.github.io/jq/
AUTHOR
Kazumasa Utashiro
LICENSE
Copyright 2022 Kazumasa Utashiro
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.