Json 创建列表键对象shell Linux

Json 创建列表键对象shell Linux,json,linux,bash,shell,Json,Linux,Bash,Shell,我试图编写一个脚本,从linux终端中的文件中获取对象的所有键列表 该文件包含如下内容: { "general" : { "street" : "Av. Roadmin", "name" : "Batman", "phone" : "125478", "pets": { "dog":"Hurry", "cat": "Aria"

我试图编写一个脚本,从linux终端中的文件中获取对象的所有键列表

该文件包含如下内容:

{
    "general" : {
       "street" : "Av. Roadmin",
       "name" : "Batman",
       "phone" : "125478",
       "pets": {
                   "dog":"Hurry",
                   "cat": "Aria"
               }
       }
}    
我想要下一个输出:

general.street
general.name
general.phone
general.pets.dog
general.pets.car
有人能帮我吗


谢谢

您可以使用
jq
,如下所示:

jq -r 'paths(scalars)|join(".")' file.json
发件人:

如果要打印键及其值,请执行以下操作:

jq -r 'paths(scalars) as $p|"\($p|join(".")): \(getpath($p))"' file.json 
general.street: Av. Roadmin
general.name: Batman
general.phone: 125478
general.pets.dog: Hurry
general.pets.cat: Aria

您可以使用
jq
,如下所示:

jq -r 'paths(scalars)|join(".")' file.json
发件人:

如果要打印键及其值,请执行以下操作:

jq -r 'paths(scalars) as $p|"\($p|join(".")): \(getpath($p))"' file.json 
general.street: Av. Roadmin
general.name: Batman
general.phone: 125478
general.pets.dog: Hurry
general.pets.cat: Aria

您看过在shell脚本中处理JSON的
jq
实用程序吗?为什么需要在shell脚本中执行此操作?这不是此项工作的最佳工具。您看过在shell脚本中处理JSON的
jq
实用程序吗?为什么需要在shell脚本中执行此操作?这不是此项工作的最佳工具。