我有一个文件(或命令的输出),其中包含由空行分隔的行块 - 如下所示:
1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)
无法弄清楚如何为每个数组单元格使用“块”行填充 bash (4.4.12) 数组,例如
arr[0]='
1
2
3'
array[1]='
4
5
6'
Run Code Online (Sandbox Code Playgroud)
环顾四周,寻找类似的线程readarray, mapfile, play withIFS/read和其他替代方案,但无法弄清楚如何做“块”行,而不仅仅是一次一行。什么是魔法组合?
使用 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
Run Code Online (Sandbox Code Playgroud)
输出:
声明 -a arr=([0]=$'1\n2\n3\n' [1]=$'\n4\n5\n6\n')
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |