Json

用空格替換製表符

  • June 24, 2018

輸入json:

[
 {
   "name": "cust1",
   "grp": [
     {
       "id": "46",
       "name": "BA2"
     },
     {
       "id": "36",
       "name": "GA1"
     },
     {
       "id": "47",
       "name": "NA1"
     },
     {
       "id": "37",
       "name": "TR3"
     },
     {
       "id": "38",
       "name": "TS1"
     }
   ]
 }
]

如何獲取 .grp

$$ $$@tsv 輸出上用空格分隔的名稱?

$ 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

**jq**方法:

jq -r '.[] | [.name, (.grp | map(.name) | join(" "))] | @tsv' input.json

輸出:

cust1   BA2 GA1 NA1 TR3 TS1

引用自:https://unix.stackexchange.com/questions/451628