【问题标题】:Extract value from returned json body using a shell script使用 shell 脚本从返回的 json 正文中提取值
【发布时间】:2018-07-05 23:34:39
【问题描述】:

所以我有一个 curl 语句,它返回以下内容:

{
  "availabilityTimestamp" : "2015-12-29T14:20:55Z"
}

我将它存储在一个名为“响应”的变量中,如下所示: response=$(curl...)

我只想从中提取这个值: 2015-12-29T14:20:55Z

有什么想法吗? 我将在 shell 脚本中使用所有这些 .sh

【问题讨论】:

标签: json regex bash shell curl


【解决方案1】:

由于这是一个 JSON 答案,最佳做法是使用 jq

curl ... | jq -r '.availabilityTimestamp'

【讨论】:

  • #!/bin/bash if [ "$#" -gt 0 ];然后 response=$(curl -s -u $1 -H "Accept: application/json" "127.0.0.1:8010/api/v1/") | jq '.availabilityTimestamp' echo "$response" else echo >&2 Not given valid username exit 1 fi
  • @Saffik 把| jq ... 放在$(subshell) 里面,否则你写的var = value | jq ... 没有意义
  • @Saffik - 请考虑accepting this answer。另请参阅stackoverflow.com/help/someone-answers 了解更多信息。
  • 感谢您的帮助@Aaron。我是这个网站的新手,所以不知道关于最佳答案的规则。我已经接受了你的回答。 :) 再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 2019-10-15
  • 2022-11-14
  • 2018-06-29
  • 2013-07-16
  • 2016-03-14
相关资源
最近更新 更多