通过shell脚本对一个文件中的所有数值相加并求和

1 篇文章 0 订阅

实现思路:用到的命令cat echo xargs tr bc
首先可以通过cat命令获取文件中的数值,在通过echo -n命令将所有数值写成1行,然后通过tr命令进行字符替换,把空格换成+号,最后交由bc进行处理
文件内容

[root@idc16 ~]# cat test
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2061.8KB/s, iops=515, runt=5085805msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2050.5KB/s, iops=512, runt=5113950msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2059.1KB/s, iops=514, runt=5090404msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2054.9KB/s, iops=513, runt=5103056msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2179.3KB/s, iops=544, runt=4812123msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2587.4KB/s, iops=646, runt=4052647msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2059.5KB/s, iops=514, runt=5091569msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2567.2KB/s, iops=641, runt=4084660msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2056.7KB/s, iops=514, runt=5099926msec
fio3_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio3_4k_log:  write: io=10240MB, bw=2569.9KB/s, iops=642, runt=4080288msec
fio4_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio4_4k_log:  write: io=10240MB, bw=2053.2KB/s, iops=513, runt=5107050msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2160.5KB/s, iops=540, runt=4853547msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2595.7KB/s, iops=648, runt=4039730msec
fio3_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio3_4k_log:  write: io=10240MB, bw=2052.3KB/s, iops=513, runt=5109433msec
fio4_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio4_4k_log:  write: io=10240MB, bw=2099.8KB/s, iops=524, runt=4993897msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2062.5KB/s, iops=515, runt=5084265msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2596.7KB/s, iops=649, runt=4038141msec
fio3_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio3_4k_log:  write: io=10240MB, bw=2065.7KB/s, iops=516, runt=5076252msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2052.7KB/s, iops=513, runt=5108554msec
fio2_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio2_4k_log:  write: io=10240MB, bw=2061.6KB/s, iops=515, runt=5086376msec
fio3_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio3_4k_log:  write: io=10240MB, bw=2798.4KB/s, iops=699, runt=3747137msec
fio_4k_log:Rand_Write_IOPS_Test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=32
fio_4k_log:  write: io=10240MB, bw=2061.1KB/s, iops=515, runt=5085519msec

处理文件

[root@idc16 ~]# grep iops  test |awk '{print $5}' > iops.txt
[root@idc16 ~]# cat  iops.txt
iops=515,
iops=512,
iops=514,
iops=513,
iops=544,
iops=646,
iops=514,
iops=641,
iops=514,
iops=642,
iops=513,
iops=540,
iops=648,
iops=513,
iops=524,
iops=515,
iops=649,
iops=516,
iops=513,
iops=515,
iops=699,
iops=515,


#转换为数值处理处理
[root@idc16 ~]# sed -i 's/iops=//g'  iops.txt
[root@idc16 ~]# sed -i 's/,//g'  iops.txt
[root@idc16 ~]# cat   iops.txt
515
512
514
513
544
646
514
641
514
642
513
540
648
513
524
515
649
516
513
515
699
515

求和计算

[root@idc16 ~]# cat iops.txt |xargs echo -n | tr ' ' '+'  | xargs echo | bc
12215
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值