Another GNU `awk` one: awk -vRS='[0-9]+' '{n+=RT};END{print n}' A `perl` one: perl -lne'$n+=$_ for/\d+/g}{print$n' A POSIX one: tr -cs 0-9 '[\n*]' | grep . | paste -sd+ - | bc