相关疑难解决方法(0)

将 JQ NULL 分隔的输出存储在 bash 数组中

在 bash 4.4.12 上使用 jq 1.5 和这个单行IFS=_ read -r -a a < <(jq -ncj '["a","b","c"][]+"_"') ; printf '%s\n' "${a[@]}"我得到一个正确分隔的输出

一种

C

分别对于元素 a、b 和 c,但是如果我尝试使用空分隔符进行相同的操作,如下所示:IFS= read -r -a a < <(jq -ncj '["a","b","c"][]+"\u0000"') ; printf '%s\n' "${a[@]}"那么我将只得到一个包含

美国广播公司

为什么这不像预期的那样工作?

此外,如果你尝试IFS= read -r -d '' -a a < <(jq -ncj '["a","b","c"][]+"\u0000"') ; printf '%s\n' "${a[@]},你会惊讶地得到一个只有第一个“ a ”元素的数组:

一种

我的目标是找到一种方法,而不用任何类型的循环迭代元素。

编辑:**readarray -d**不是解决方案,因为我需要在 4.4 版之前的 bash 中运行一段代码

bash nul jq

3
推荐指数
1
解决办法
890
查看次数

标签 统计

bash ×1

jq ×1

nul ×1