如何在shell脚本中循环遍历json数组

如何在shell脚本中循环遍历json数组

下面是 json 数组,我需要从每个对象打印链接和名称。可以通过shell脚本实现这个吗?我尝试过使用 jq ,但我只能获取一个值。

values[
{
  "Links": "https://abc/tset",
  "Dates": 1540204743643,
  "name" : test1
}
{
  "Links": "https://abc/tset",
  "Dates": 1539256093799,
  "name" : test2
}
]

答案1

你的意思是这样的吗?

$ jq --raw-output '.values[] | [.Links,.name] | @tsv' <<< '{"values": [{"Links": "https://abc/tset", "Dates": 1540204743643, "name": "test1"}, {"Links": "https://abc/tset", "Dates": 1539256093799, "name": "test2"}]}'
https://abc/tset    test1
https://abc/tset    test2

答案2

你可以使用这个:
grep -Eoe ' "Links":([[:space:]]+[^[:space:]]+){1}' -Eoe ' "name" :([[:space:]]+[^[:space:]]+){1}'

它会找到linkandname并在它们后面显示一个单词。

相关内容