使用shell脚本计算文本中数字求和

Posted 白-胖-子

tags:

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

问题:

文件abc中有且只有一行数字32 2 43 6 77,编写shell脚本通过循环求和。

准备文本

echo "32 2 43 6 77" > abc

编写脚本

  1 #!/bin/bash
  2 #
  3 #*****************************************************************************
  4 #Author:                    sunmy
  5 #Mail:                      8528379[AT]]sina.com
  6 #Date:                      2021-09-07
  7 #FileName:                 aabc.sh
  8 #BlogURL:                   www.sunmy.pro
  9 #Description:              GodNamed
 10 #Copyright (C):            2021 All rights reserved
 11 #****************************************************************************
 12 for i in {1..5};do
 13    j=`cat /root/abc | awk -v test=$i '{print $test}'`
 14    let sum+=j
 15 done
 16 echo sum=$sum 

脚本解读

  • 通过cat命令读取abc文本
  • 通过管道将取出的值传给awk
  • awk通过-v参数指定变量 -v test=$i
  • awk通过print打印出$1 ~$5,也就是文本中的值
  • 写for循环,文本中5个数,所以i取值为1~5
  • 变量j的值为从文本中依次取出的数
  • 使用let让变量j循环自加
  • 通过echo命令打印出计算结果

此脚本主要使用了awk的自定义变量进行循环取值。

以上是关于使用shell脚本计算文本中数字求和的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本里面从一个文本里面读出一个数字,如何转换成整数?我需要用这个数字进行加减乘除

Shell脚本中计算字符串长度的5种方法及从文本获取某一行

shell脚本--数值计算

使用shell脚本,创建整数和计算机程序,打印数字脚本

用shell脚本,创建一个整数和计算器程序并打印数字脚本

Shell脚本中常用的文本过滤命令