3

为了从 linux 服务器上的日志文件中快速评估各种操作的时间,我想从日志中提取它们并创建一个 textual/tsv 样式的直方图。为了更好地了解时间是如何分布的,我想将它们分成 0-10ms、10-20ms 等范围。

输出应如下所示:

121    10
 39    20
 12    30
  7    40
  1   100

如何使用通常的 unix 命令行工具集来实现这一点?

4

1 回答 1

8

快速回答:

cat <file> | egrep -o [0-9]+ | sed "s/$/ \/10*10/" | bc | sort -n | uniq -c

详细解答:

  • grep 您的时间或数字的模式。您可能需要执行多个 grep 步骤才能从日志中准确提取所需的数字。

  • 使用 sed 为整数除以所需因子添加算术表达式并将其乘回

  • bc 执行计算

  • 著名的排序| uniq 组合来计算出现次数

于 2014-06-02T19:53:17.620 回答