这已经被问了一百万次了,我知道有一百万个soln。不过,我的限制是我不能在这个客户机服务器上安装任何东西,所以我有bash可以想出的任何东西:)
我引用Parsing JSON with Unix tools并使用它来读取数据并拆分成行。在
$ cat demo.json
{"rows":[{"name":"server1.domain.com","Access":"Owner","version":"99","Business":"Owner1","Owner2":"Main_Apprve","Owner1":"","Owner2":"","BUS":"Marketing","type":"data","Egroup":["ALPHA","BETA","GAMA","DELTA"],"Ename":["D","U","G","T","V"],"stage":"TEST"}]}
但是,正如您所看到的,它将“Egroup”和其他具有多个条目的项目分割成一行,这使它变得有点困难。在
^{pr2}$我正在尝试捕获数据,以便我可以使用shell脚本列出。您建议我如何捕获每个变量,然后在shell脚本中的报告中重用?在
grep -Po '"Egroup":.*?[^\\]",' demo.json
"Egroup":["ALPHA",
正如您所看到的,这对于具有多个条目的行不起作用。在
感激不尽。(顺便说一句,Im对python和perl选项开放,但不必安装任何额外的模块来与json一起使用)
使用
Python
很简单。示例
使用JSON模块的Perl 1-liner:
输出
^{pr2}$如果您没有安装JSON,那么您可以复制JSON::PP(PP表示纯Perl)的源代码并将其放入您的工作目录中:
我认为添加jq解决方案很好,因为它是一个很棒的JSON工具:
你可以在这里看到它的作用https://jqplay.org/s/de4X1TUBG4
相关问题 更多 >
编程相关推荐