#!/bin/bash declare -A cores for ((i=-50;i<=50;i++)); do for ((j=-50;j<=50;j++)); do for ((k=-50;k<=50;k++)); do cores[$i,$j,$k]=0 done done done while read line; do if [[ ${line:0:2} == "on" ]]; then new_value=1 else new_value=0 fi t=${line#*x=} t=${t%%,*} x_1=${t%\.\.*} x_2=${t#*\.\.} t=${line#*y=} t=${t%%,*} y_1=${t%\.\.*} y_2=${t#*\.\.} t=${line#*z=} t=${t%%,*} z_1=${t%\.\.*} z_2=${t#*\.\.} if [ $x_1 -lt -50 ] || [ $x_2 -gt 50 ] || [ $y_1 -lt -50 ] || [ $y_2 -gt 50 ] \ || [ $z_1 -lt -50 ] || [ $z_2 -gt 50 ]; then continue fi for ((x=x_1;x<=x_2;x++)); do for ((y=y_1;y<=y_2;y++)); do for ((z=z_1;z<=z_2;z++)); do cores[$x,$y,$z]=$new_value done done done done echo $(( $(sed 's/ /+/g' <<< ${cores[@]}) ))