28 lines
441 B
Bash
28 lines
441 B
Bash
|
#!/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"
|