首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将Diff输出拆分到Array

不能将Diff输出拆分到Array
EN

Stack Overflow用户
提问于 2020-11-09 09:13:21
回答 1查看 94关注 0票数 0

我以前从来没有用过bash来做这么复杂的事情,所以请原谅非常简单的错误。

因此,我试图通过执行以下操作将diff的输出拆分为数组:

代码语言:javascript
复制
diffresult=$(diff <(jq . actualProp.json) <(jq . standardProp.json) | tr -d '<>-')
echo $diffresult #returns 2c2 "access": "Deny", "access": "Allow", 5c5 "destinationPortRange": "33899", "destinationPortRange": "3389", 8c8 "priority": 3009, "priority": 300,

#split diffresult into array 
IFS=',' read -ra array <<< "$diffresult"

#check the length
echo "${#array[@]}" #returns 1

#loop through the array
for element in "${array[@]}"
do
  echo "$element" 
done
#returns 2c2

我做错了什么,为什么我不能把差异的输出分割成一个数组?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-09 09:41:07

回波$diffresult

未引用的展开结果经历了分词展开。通常情况下,当您编写$时,它应该在"中。

读取-ra数组<<< "$diffresult“

read一直读到第一个换行符。然后,它在IFS上拆分一行,并将结果分配给参数。因此,read只读取第一行2c2

您可能需要使用bash扩展和读取行:

代码语言:javascript
复制
readarray -t array <<<"$diffresult"

研究如何逐行读取流如何将线从流加载到数组关于引号

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64748758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档