JSON을 입력하세요:
[
{
"name": "cust1",
"grp": [
{
"id": "46",
"name": "BA2"
},
{
"id": "36",
"name": "GA1"
},
{
"id": "47",
"name": "NA1"
},
{
"id": "37",
"name": "TR3"
},
{
"id": "38",
"name": "TS1"
}
]
}
]
@tsv 출력에서 공백으로 구분된 .grp[] 이름을 얻는 방법은 무엇입니까?
$ jq -r '.[]|[.name, (.grp//[{"name":"-"}]|.[]|" ",.name)]|@tsv' test_inp
cust1 BA2 GA1 NA1 TR3 TS1
위 예의 예상 출력은 다음과 같습니다.
cust[TAB]BA2[SPACE]GA1[SPACE]NA1[SPACE]TR3[SPACE]TS1
답변1
jq
방법:
jq -r '.[] | [.name, (.grp | map(.name) | join(" "))] | @tsv' input.json
산출:
cust1 BA2 GA1 NA1 TR3 TS1