我有一个 Web 访问 CSV 文件,其中包含一些看起来像这样的统计信息(通常大约 20K 记录,但这是一个只有 6 条记录的示例):
servlet name, HTTP RC, response time, request timestamp
/servlet_A,200,3,[10/Nov/2013:11:00:12 +0000]
/servlet_B,302,10,[10/Nov/2013:11:00:12 +0000]
/servlet_C,200,17,[10/Nov/2013:11:00:12 +0000]
/servlet_A,200,30,[10/Nov/2013:11:00:15 +0000]
/servlet_B,302,16,[10/Nov/2013:11:00:15 +0000]
/servlet_C,200,11,[10/Nov/2013:11:00:15 +0000]
我需要将其解析为以下格式:
servlet name, requests count with latency in range 0-5, latency range 6-10, latency range 11-15, ...., latency range 196-200, HTTP 200 count, HTTP 302 count
servlet_A,1,0,0,0,0,1,0,....,2,0
servlet_B,0,1,0,1,0,0,0,....,0,2
servlet_C,0,0,1,1,0,0,0,....,2,0
这些文件位于带有 Perl、Python、Bash 等工具的基于 CentOS 的服务器上。输出文件将用于加载到我无权访问的第 3 方 MySQL 数据库中。
我尝试用 bash 编写此代码,但我的数学有点偏离,我尝试使用除以 5 来放置延迟计数,例如延迟 = 11 和 11 / 5 = 2.2 并向上取整。这意味着应该将 1 的增量添加到第三个位置,但是我在正确解析它时遇到了问题。
也许还有其他选项可以执行此操作(使用本地构建的数据库并导出文件)或我现在知道的其他一些选项,因此非常感谢任何帮助!