jsonfilter and queries with '-' in them
Dirk Brenken
dev at brenken.org
Wed Aug 12 16:08:47 EDT 2020
On Wed, 2020-08-12 at 14:20 -0500, Michael Jones wrote:
> Hi List,
>
> I am trying to query netifd via ubus for the list of ipv4 ipaddresses
> associated with an interface.
>
> Currently my query looks like
>
> ubus call network.interface.wan status | jsonfilter -e "@.ipv4-
> address"
> Syntax error: Invalid escape sequence
> In expression @.ipv4-address
> Near here ----------^
>
> However, underscores work just fine.
>
> ubus call network.interface.wan status | jsonfilter -e "@.dns_metric"
> 0
>
> Is there a specific trick to informing jsonfilter of identifiers with
> dashes in them?
>
> I can work around this by returning anything that has an "address"
> key. This isn't optimal since it'll give me ipv6 addresses as well,
> but I can filter those out with grep.
>
> ubus call network.interface.wan status | jsonfilter -e
> "@.*[*].address"
> 10.1.0.1
>
> Or further constrain it by only returning the "address" key of
> objects
> that have a "mask" key
> ubus call network.interface.wan status | jsonfilter -e
> "@.*[@.mask].address"
> 10.1.0.1
>
> But I'd really like to understand why it's unhappy with the '-'
> character.
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
>
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
>
Try jsonfilter -e '@["ipv4-address"]' to return the array,
and jsonfilter -e '@["ipv4-address"][0].address' to return the first
address of the array ... hopefully this works for you (untested).
regards
dirk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20200812/2145294c/attachment.sig>
More information about the openwrt-devel
mailing list