#!/bin/sh gamesum=0 powersum=0 while IFS=: read -r game line; do rmax=0 gmax=0 bmax=0 fail="" game=${game##* } IFS=";" set -- $line IFS=" ," for roll; do last="" while [ -z "$last" ]; do roll=${roll#* } [ "${roll%%,*}" = "$roll" ] && last=1 case ${roll%%,*} in *red) [ "${roll%% *}" -gt 12 ] && fail=1; [ "${roll%% *}" -gt $rmax ] && rmax=${roll%% *} ;; *green) [ "${roll%% *}" -gt 13 ] && fail=1; [ "${roll%% *}" -gt $gmax ] && gmax=${roll%% *} ;; *blue) [ "${roll%% *}" -gt 14 ] && fail=1; [ "${roll%% *}" -gt $bmax ] && bmax=${roll%% *} ;; esac roll=${roll#*,} done done [ -z "$fail" ] && gamesum=$((gamesum + game)) powersum=$((powersum + (rmax * gmax * bmax))) done echo 1: $gamesum echo 2: $powersum