Bash从JSON输出中提取字符串并将其保存到Array中

与阿洛巴宾

我试图从一个字符串中提取几个子字符串,我想将这些子字符串保存在一个数组中,所以我想到了使用循环,但是我真的是bash脚本的新手。

原始字符串如下所示:

   {  
   "groups":[  
      {  
         "group":"",
         "favourites":[  
            {  
               "category":"",
               "longitude":1.0812308,
               "latitude":49.4304904,
               "test":"",
               "color":0,
               "name":"Place Henri Gadeau de Kerville, Centre Ville Rive Gauche"
            },
            {  
               "category":"",
               "longitude":1.940849,
               "latitude":48.57248,
               "test":"",
               "color":0,
               "name":"Rue Charles de Gaulle, Saint-Arnoult-en-Yvelines"
            },
            {  
               "category":"",
               "longitude":1.9358053,
               "latitude":48.570592,
               "test":"",
               "color":0,
               "name":"Rue des Remparts, Saint-Arnoult-en-Yvelines"
            },
            {  
               "category":"",
               "longitude":1.0856655,
               "latitude":49.4291327,
               "test":"",
               "color":0,
               "name":"Rue Marie Duboccage (Saint-Sever), Rouen"
            },
            {  
               "category":"",
               "longitude":1.0845655,
               "latitude":49.4251747,
               "test":"",
               "color":0,
               "name":"Rue Octave Crutel, Rouen"
            }
         ],
         "color":0
      }
   ]
}

所需的输出是一个数组,该数组的URL模式是“ name”标签中的url模式,例如:

Array[0]=Place%20Henri%20Gadeau%20de%20Kerville%2C%20Centre%20Ville%20Rive%20Gauche;
Array[1]=Rue%20Charles%20de%20Gaulle%2C%20Saint-Arnoult-en-Yvelines;
Array[2]=Rue%20des%20Remparts%2C%20Saint-Arnoult-en-Yvelines;
Array[3]=Rue%20Marie%20Duboccage%20(Saint-Sever)%2C%20Rouen;
Array[4]=Rue%20Octave%20Crutel%2C%20Rouen;
...

为了将Array的值保存在另一个文件中,然后使用它们。我尝试过grep

grep -o '^\"name\":.*\},$' $var 

但我无法取得好的结果。

伊尼安

bash一个简单的循环中,使用JSON解析工具jq和流程替换

#!/bin/bash

jsonArray=()
while IFS= read -r line
do
    jsonString="${line// /%20}"           # Replace blank-spaces with '%20'
    jsonString="${jsonString//,/%2C}"     # Replace ',' with empty '%2C'
    jsonString+=";"                       # Append a ';' at end of string
    jsonArray+=("$jsonString")            # Add it to the array
done< <(jq -r '.groups[].favourites[].name' newfile)

printf "%s\n" "${jsonArray[@]}"           # "${jsonArray[0]}","${jsonArray[1]}"...

在我的示例中,我在文件中使用了字符串,对于您的情况,请替换行

done< <(jq -r '.groups[].favourites[].name' newfile)

实际命令产生的JSON输出为

done < <( json-cmd | jq -r '.groups[].favourites[].name')

在运行脚本时

$ bash script.sh
Place%20Henri%20Gadeau%20de%20Kerville%2C%20Centre%20Ville%20Rive%20Gauche;
Rue%20Charles%20de%20Gaulle%2C%20Saint-Arnoult-en-Yvelines;
Rue%20des%20Remparts%2C%20Saint-Arnoult-en-Yvelines;
Rue%20Marie%20Duboccage%20(Saint-Sever)%2C%20Rouen;
Rue%20Octave%20Crutel%2C%20Rouen;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从URL中提取查询字符串并将其保存在数据库中?

来自分类Dev

如何获取BAT文件的输出并将其保存到字符串

来自分类Dev

从Java中的字符串中提取字符

来自分类Dev

在Javascript中提取字符串中的字符数组

来自分类Dev

使用多个定界符分割字符串并将其保存到向量中

来自分类Dev

从文件中提取字符串并使用Bash中的脚本分配给变量

来自分类Dev

从R中的字符串中提取字母

来自分类Dev

从Java中的Json字符串中提取字段

来自分类Dev

如何从字符串中提取日期并将其放入Java中的日期变量中

来自分类Dev

解析以逗号分隔的字符串并将其保存到bash中的文件中

来自分类Dev

从CSS文件中收集字符串并将其持久保存到新的CSS文件中

来自分类Dev

提取字符串并将其从提取的列pandas中删除

来自分类Dev

如何从Tcl中的十六进制值字符串中提取位字段并将其输出为整数?

来自分类Dev

如何从一个数据框中的字符中提取字符串并将其放入新表中

来自分类Dev

如何从json数组中提取字符串值并将其存储

来自分类Dev

如何从php字符串的末尾分隔数字并将其保存到不同的变量中

来自分类Dev

从Bigquery中的URL中提取字符串

来自分类Dev

从PHP中的对象中提取字符串

来自分类Dev

从字符串中提取值并将其存储在列表中

来自分类Dev

使用Findstr查找字符串并将其保存到文件中,而不会输出错误

来自分类Dev

从文件中提取子字符串并将其存储在shell变量中

来自分类Dev

如何从文件名中提取字符串的一部分并将其添加到该文件中

来自分类Dev

从“ td”标签中的字符串中提取字符

来自分类Dev

从字符串中提取整数并将其添加到Java中

来自分类Dev

从单元格中提取字符串并将其放在新的数据框R中

来自分类Dev

从字符串中提取字符

来自分类Dev

从“ pactl”输出中提取字符串,并将其作为变量传递给shell脚本

来自分类Dev

从 Bash 中的字符串中提取字符串

来自分类Dev

在bash中提取字符串的特定单词

Related 相关文章

  1. 1

    如何从URL中提取查询字符串并将其保存在数据库中?

  2. 2

    如何获取BAT文件的输出并将其保存到字符串

  3. 3

    从Java中的字符串中提取字符

  4. 4

    在Javascript中提取字符串中的字符数组

  5. 5

    使用多个定界符分割字符串并将其保存到向量中

  6. 6

    从文件中提取字符串并使用Bash中的脚本分配给变量

  7. 7

    从R中的字符串中提取字母

  8. 8

    从Java中的Json字符串中提取字段

  9. 9

    如何从字符串中提取日期并将其放入Java中的日期变量中

  10. 10

    解析以逗号分隔的字符串并将其保存到bash中的文件中

  11. 11

    从CSS文件中收集字符串并将其持久保存到新的CSS文件中

  12. 12

    提取字符串并将其从提取的列pandas中删除

  13. 13

    如何从Tcl中的十六进制值字符串中提取位字段并将其输出为整数?

  14. 14

    如何从一个数据框中的字符中提取字符串并将其放入新表中

  15. 15

    如何从json数组中提取字符串值并将其存储

  16. 16

    如何从php字符串的末尾分隔数字并将其保存到不同的变量中

  17. 17

    从Bigquery中的URL中提取字符串

  18. 18

    从PHP中的对象中提取字符串

  19. 19

    从字符串中提取值并将其存储在列表中

  20. 20

    使用Findstr查找字符串并将其保存到文件中,而不会输出错误

  21. 21

    从文件中提取子字符串并将其存储在shell变量中

  22. 22

    如何从文件名中提取字符串的一部分并将其添加到该文件中

  23. 23

    从“ td”标签中的字符串中提取字符

  24. 24

    从字符串中提取整数并将其添加到Java中

  25. 25

    从单元格中提取字符串并将其放在新的数据框R中

  26. 26

    从字符串中提取字符

  27. 27

    从“ pactl”输出中提取字符串,并将其作为变量传递给shell脚本

  28. 28

    从 Bash 中的字符串中提取字符串

  29. 29

    在bash中提取字符串的特定单词

热门标签

归档