当我使用命令时:
ids=`cat $myfilename | jq -r "[.data[].id]"`
并像这样返回:
[
"PC_PACX_0017",
"GS_ZGRS_0001",
"PC_PACX_0018",
"GS_ZGRS_0002",
"AB_HXJK_0002",
"AB_HXJK_0001",
"TK_TKZX_0011",
"TL_TBAL_0002",
"TL_TBAL_0001",
"TS_TKRS_0001",
"TS_TKRS_0002",
"TS_TKRS_0003"
]
但它不能被视为一个数组,它的长度只有1.我如何使用这个结果?
答案 0 :(得分:0)
数组与多行字符串不同。假设您的数据中没有换行符,请将jq
调用更改为
jq -r '[.data[].id]|.[]' # Could be simplified to '.data[].id'
并使用readArray
(bash
4或更高版本)填充正确的数组。
readArray -t ids < <(jq -r '[.data[].id]|.[]' "$myfilename")