advent2020/eighteen.bash

28 lines
441 B
Bash
Executable File

#!/bin/bash
addmul="[0-9]+\ [+*]\ [0-9]+"
singpar="\([0-9]+\)"
part1=0 part2=0
while read -r l
do
m="$l"
m=${l//(/((}
m="(${m//)/))})"
m=${m//\*/)*(}
((part2+=m))
while [[ $l =~ $addmul ]]
do
l=${l/"$BASH_REMATCH"/$((BASH_REMATCH))}
if [[ $l =~ $singpar ]]
then
l=${l/"$BASH_REMATCH"/$((BASH_REMATCH))}
fi
done
((part1+=l))
done
echo "$part1"
echo "$part2"