쉘 스크립트를 통해 모든 JSON 필드 읽기

쉘 스크립트를 통해 모든 JSON 필드 읽기

다음과 같은 할 일 목록이 있습니다. 과제용 CSV 파일을 준비해야 합니다.

Name,Status,Last Start,Last End
    Joblists :
    123.load.nw-data.025
    123.load.nw-data.026
    123.load.nw-data.027
    123.load.nw-data.028

curl -s --insecure http://status-api.xyz.net:1234/v1/jobs_status/123?job_name=123.load.nw-data.025

산출:

{
    "JobID": "A123123.load.nw-data.025",
    "Job PID": -1,
    "Job Name": "123.load.nw-data.025",
    "Status": "RUNNING",
    "Run Machine": "",
    "Queue": "",
    "Status Time": "2020-10-06 05:30:17",
    "Exit Code": -656,
    "Last Start": "2020-10-06 05:30:17",
    "Last End": null,
}

답변1

"input.json"으로 데이터를 추출한다고 가정합니다.

데이터에는 "가 포함되어서는 안 됩니다. 포함된 경우 다른 언어로 구문 분석하는 것이 좋습니다.

파일당 1개의 데이터 세트만 있을 수 있으며 배열은 없습니다.

#!/bin/sh
(
        # Title line
        grep : input.json | cut -d : -f 1 | tr '\n' ','
        echo ''
        # Data line
        grep : input.json | cut -d : -f 2- | tr -d '\n'
        echo ''
) |
sed -e 's| *"|"|g' -e 's|", *|",|g' -e 's|,$||'

관련 정보