Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何将正则表达式与Shell脚本一起使用_Json_Shell_Sed - Fatal编程技术网

Json 如何将正则表达式与Shell脚本一起使用

Json 如何将正则表达式与Shell脚本一起使用,json,shell,sed,Json,Shell,Sed,跑 我将得到这样的数组输出 curl http://localhost:3000/ #!/bin/bash get_name() { curl --silent "http://localhost:3000/" | grep '"name":' | sed -E 's/.*"([^"]+)".*/\1/' } echo `get_name` 我想通过Shell脚本获取name1 [ { "name":

我将得到这样的数组输出

curl http://localhost:3000/
#!/bin/bash
get_name() {
  curl --silent "http://localhost:3000/" |
  grep '"name":' |
  sed -E 's/.*"([^"]+)".*/\1/'                                 
}
echo `get_name`
我想通过Shell脚本获取
name1

[
  {
    "name": "name1",
    "wred": {
      "lsd": "8040baf7aded3319b0dec433b2461"
    },
    "node": "dfsafafafaf="
  },
  {
    "name": "name2",
    "wred": {
      "lsd": "e6b3a11581a800d"
    },
    "node": "fdsafzxcvx="
  },
  {
    "name": "name3",
    "wred": {
      "lsd": "d3319b0dec433b2461"
    },
    "node": "hlkkjjkhjas="
  }
]
我得到的结果是这样的

curl http://localhost:3000/
#!/bin/bash
get_name() {
  curl --silent "http://localhost:3000/" |
  grep '"name":' |
  sed -E 's/.*"([^"]+)".*/\1/'                                 
}
echo `get_name`

请帮助我,非常感谢。

以JSON格式输出的curl。使用
jq
工具提取。虽然从技术上讲,您可以使用sed处理一些JSON文件,但这是有风险的:sed是面向行的,JSON是结构化的。无法保证JSON文件将以特定方式格式化

name1 name2 name3
执行“曼杰Q”以获取完整信息。简短版本: *“[0]”将选择数组的第一个条目 *“name”选择name元素
*'-r'产生“原始”输出-去掉引号。

不要使用正则表达式来解析JSON,而是使用适当的解析器。这能回答您的问题吗@Cid不,我不想使用JSON。您已经在使用JSON了