【发布时间】:2020-12-31 18:47:54
【问题描述】:
我有这个test.json 文件
{
"list": [
{
"expand": "xx",
"id": "xxxxx",
"self": "https",
"key": "test-11",
"fields": {
"field_1": "1234"
}
},
{
"expand": "xx",
"id": "xxxxx",
"self": "https",
"key": "test-10",
"fields": {
"field_1": "1235",
"field_2": null
}
}
]
}
我正在尝试使用 IFS while 循环读取值:
cat test.json| jq -r '[.list[]| ([.key]|tostring) + "," + "\(.fields| .field_1)"]|@tsv' \
| while IFS="," read -r key field_1; do
echo "$key $field_1"
curl -s https ://thisistest.com/api/$key/$field_1
done;
echo output displays only: test-11
我想获取key 和field_1 的值,以便在curl 请求中使用它们。
【问题讨论】:
-
试试:
jq -r '.list[]|[.key,.fields.field_1]|@tsv' test.json -
@att ,我已将此问题回滚到以前的版本。您所做的 json 修改导致 json 文件无效,在某些时候使用
::。此外,如果您还有其他问题,与最初的问题不同,请提出新问题。
标签: bash while-loop jq ifs