Skip to main content
Follow POSIX requirement of `-v` and its arg being separate arguments. Some awk implementations even need it.
Source Link
Stéphane Chazelas
  • 586.5k
  • 96
  • 1.1k
  • 1.7k

Another GNU awk one:

awk -vRS='[0v RS='[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+sd + - | bc 

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 

Another GNU awk one:

awk -v RS='[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 
added 132 characters in body
Source Link
Stéphane Chazelas
  • 586.5k
  • 96
  • 1.1k
  • 1.7k

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 

Another GNU awk one:

awk -vRS='[0-9]+' '{n+=RT};END{print n}' 

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 
Source Link
Stéphane Chazelas
  • 586.5k
  • 96
  • 1.1k
  • 1.7k

Another GNU awk one:

awk -vRS='[0-9]+' '{n+=RT};END{print n}'