实现思路:用到的命令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