쉘 스크립트에서 json 배열을 반복하는 방법

쉘 스크립트에서 json 배열을 반복하는 방법

아래는 json 배열이며 각 개체의 링크와 이름을 인쇄해야 합니다. 쉘 스크립트를 통해 이를 달성할 수 있습니까? 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}'

그 뒤에 나오는 단어를 찾아 표시 link합니다 .name

관련 정보