一些JSON:
{"theSecret":"flhiusdh4543sdfasf34sdf+fsfs/sdf43454=","foo":{"bar":41,"something":"hello world","else":"hi","date":20230101,"qux":0,"digest":"sfhusdf234jkkjuiui23kjkj/SFDF34SDSFDS="}}
经过修饰:
{
"theSecret": "flhiusdh4543sdfasf34sdf+fsfs/sdf43454=",
"foo": {
"bar": 41,
"something": "hello world",
"else": "hi",
"date": 20230101,
"qux": 0,
"digest": "sfhusdf234jkkjuiui23kjkj/SFDF34SDSFDS="
}
}
我想要
theSecret
钥匙
我试过了:
$ echo "$json" | sed -nE 's/.*theSecret":"(.*)".*/\1/p' # (.*?) doesn't work
它给出了:
flhiusdh4543................4SDSFDS=
即来自
秘书
直到年底
digest
。这是因为sed缺乏非贪婪的量词,所以
.*?
不起作用。
我该怎么做?
(这是在一个高山集装箱中
sed
,
grep
和
awk
。
jq
和
perl
不可用。)