bc:获取num列表的总和

NOr*_*der 5 unix bc


Jack   10
J      10 
A      20 
Lu cal 20
A bc U 20

我想得到这些数字的总和:10 + 10 + 20 + 20 + 20 = 80

但是我不能cat input|cut -d " " -f 3用来获取数字,我怎么能这样做?

Tia*_*nyj 12

你可以使用grep + paste + bc

$ grep -oE '[0-9]+' file
10
10
20
20
20

$ grep -oE '[0-9]+' file | paste -s -d + - 
10+10+20+20+20

$ grep -oE '[0-9]+' file | paste -s -d + - | bc
80
Run Code Online (Sandbox Code Playgroud)

而不是grep,你可以使用cut

$ cut -c 8- file
Run Code Online (Sandbox Code Playgroud)

或者只是awk

$ awk '{print $NF}' file
Run Code Online (Sandbox Code Playgroud)

但是如果你可以使用awk,你可以使用awk求和

$ awk '{total += $NF} END { print total }' file
Run Code Online (Sandbox Code Playgroud)