使用bash和sed的数字总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用bash和sed的数字总和相关的知识,希望对你有一定的参考价值。

Sum of digits using bash and sed
  1. #!/bin/sh
  2. #Sum of all digits in a number
  3.  
  4. num=12334
  5. tot=0
  6. mod=0
  7. echo "Number = $num"
  8. while [ $num -gt 0 ]
  9. do
  10. mod=$(expr $num % 10)
  11. tot=$(expr $tot + $mod)
  12. num=$(expr $num / 10)
  13. done
  14. echo "Sum= $tot"
  15.  
  16. $ ./sumofdig.sh
  17. Number = 12334
  18. Sum= 13
  19.  
  20. Another alternative using sed:
  21.  
  22. $ expr $(echo "12334" | sed -e 's/[0-9]/ + &/g' -e 's/^ +//g')
  23. 13
  24.  
  25. Breakdown steps:
  26.  
  27. $ echo "12334"
  28. 12334
  29.  
  30. $ echo "12334" | sed 's/[0-9]/ + &/g'
  31. + 1 + 2 + 3 + 3 + 4
  32.  
  33. $ echo "12334" | sed -e 's/[0-9]/ + &/g' -e 's/^ +//g'
  34. 1 + 2 + 3 + 3 + 4
  35.  
  36. $ expr $(echo "12334" | sed -e 's/[0-9]/ + &/g' -e 's/^ +//g')
  37. 13

以上是关于使用bash和sed的数字总和的主要内容,如果未能解决你的问题,请参考以下文章

使用awk / grep / sed / bash / vim进行正则表达式匹配和打印

使用 sed / awk / bash 将缺失的行号填充到文件中

使用 Bash (sed?) 删除包含特定文本 (regex) 的多行 /* ... */ 样式注释

bash 中 sed 未终止的 s 命令出错

Bash:从脚本中查找并替换文本

shell脚本如何判断变量为数字?