从日志中提取数字数据

时间:2016-03-15 15:52:08

标签: bash shell

我的工作时间由10个子目录组成,每个子目录中都有一些由大量数据组成的相关log.log。

使用tail -n 3 log.log,我获得了类似的内容:

               (Mnbf/s)   (GFlops)   (ns/day)  (hour/ns)
Performance:   1978.319    102.192     21.487      1.117
Finished mdrun on node 0 Tue Mar 15 16:23:03 2016

只有21.487的数字很重要。

问题:bash shell命令的哪些组合对于从该数据中仅提取数字21.487并将其放入指定的日志中有用?

然后我将把这个命令放在一个循环中来处理来自10次独立运行的数据,并计算它们的平均值。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

我会使用char *

awk

你可以像tail -n2 file | awk 'NR==1{print $4}' 一样使用它:

find

我假设你在那个文件夹里。否则,请find . -name 'log.log' -exec bash -c 'tail -n2 "$1" | awk "NR==1{print $4}"' - "{}" \;

替换.