BASH 脚本 - 使用 GREP 从 JSON 输出中返回两个特定值

子弹眼

我从谷歌 API 调用收到了以下 JSON 输出,我正在努力使用 grep 只在“几何”\“位置”下存储“lat”和“lng”值,所以我得到如下输出:

年,长

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "",
               "short_name" : "",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Kildegade",
               "short_name" : "Kildegade",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Horsens",
               "short_name" : "Horsens",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Denmark",
               "short_name" : "DK",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "8700",
               "short_name" : "8700",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Kildegade, 8700 Horsens, Denmark",
         "geometry" : {
            "location" : {
               "lat" : 55.863466,
               "lng" : 9.848784
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 55.86481498029149,
                  "lng" : 9.850132980291503
               },
               "southwest" : {
                  "lat" : 55.8621170197085,
                  "lng" : 9.847435019708499
               }
            }
         },
         "place_id" : "ChIJG8X9xAVjTEYRGwL9QuNARJQ",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

我认为我需要在 API KEY 之后进行 GREP 调用,但我有点卡住了,因为我得到的输出没有任何 GREP,但在应用任何简单的 GREP 时什么也没有。

adresse=$(curl -s "https://maps.googleapis.com/maps/api/geocode/json?address=Kildegade+8700+horsens+denmark"&key=GOOGLE API KEY")

在此之前,我曾在一些类似的 JSON 输出中使用过:

| grep -B 1 "route" | awk -F'"' '/short_name/ {print $4}

但这不适合这个输出,而且我在使用 GREP 时没有那么强大;)

任何帮助都会非常有帮助,谢谢;)

罗德·埃利亚斯

jq ( https://stedolan.github.io/jq/ ) 是一个轻量级且灵活的命令行 JSON 处理器。

假设您想从 json 示例中提取latlng字段。

然后你可以使用类似的东西 jq '.results[].geometry.location' < input.json

请注意,在上面的示例中,我认为您的 json 存储在名为 的文件中input.json,但您可以像这样使用jqafter curlcurl ... | jq ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

curl 命令使用 bash 脚本 grep 输出和验证

来自分类Dev

Bash从多行JSON脚本grep变量?

来自分类Dev

bash脚本中grep单行的shell脚本

来自分类Dev

在curl bash脚本中使用JSON输出

来自分类Dev

如何使用shell脚本从输出中grep特定值?

来自分类Dev

从bash脚本的命令输出中获取两个值

来自分类Dev

bash脚本中的grep找不到项目

来自分类Dev

Bash脚本:从文件中打印grep行

来自分类Dev

了解bash脚本中的grep模式

来自分类Dev

Unix在bash脚本中添加grep选项

来自分类Dev

bash脚本中的grep和mysql变量

来自分类Dev

bash脚本中的grep无法正常工作

来自分类Dev

Unix在bash脚本中添加grep选项

来自分类Dev

BASH grep脚本

来自分类Dev

BASH grep脚本

来自分类Dev

使用grep从另一个Linux脚本中检测linux bash脚本中的注释行

来自分类Dev

使用'find'然后在bash脚本中在每一行中搜索两个值

来自分类Dev

为什么bash脚本使用,如果和grep工作每隔一个电话吗?

来自分类Dev

grep输出仅在bash脚本中打印一行

来自分类Dev

在bash脚本中从grep输出扩展环境变量

来自分类Dev

grep输出仅在bash脚本中打印单行

来自分类Dev

在从bash脚本调用的grep路径中使用*

来自分类Dev

bash脚本-如何在grep中使用$ variable

来自分类Dev

提高使用grep进入while循环的Bash脚本的速度

来自分类Dev

使用 shell 脚本编写 grep ifconfig 输出

来自分类Dev

使用bash脚本合并JSON文件

来自分类Dev

Linux Bash 脚本 grep 错误

来自分类Dev

来自grep输出的Bash脚本案例菜单

来自分类Dev

如何使用Bash脚本遍历两个文件