我有一个文件(或命令的输出),其中包含由空行分隔的行 block - 如下所示:
1
2
3
4
5
6
无法弄清楚如何用每个数组单元格的行“ block ”填充 bash (4.4.12) 数组,例如
arr[0]='
1
2
3'
array[1]='
4
5
6'
使用 readarray
、mapfile
寻找类似线程,使用 IFS/read
和其他替代方案,但无法弄清楚该怎么做行的“ block ”,而不仅仅是一次一行。
什么是魔法组合?
最佳答案
使用 bash:
declare -i c=0 # set integer attribute
while IFS= read -r line; do
[[ -z $line ]] && c+=1
arr[$c]+="$line"$'\n'
done < file
declare -p arr # output array
输出:
declare -a arr=([0]=$'1\n2\n3\n' [1]=$'\n4\n5\n6\n')
关于bash - 用 BLOCKS 行填充 bash 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63495280/