perl / python / bash脚本从文件中获取值并对它们进行分组

时间:2016-08-12 06:01:39

标签: python bash perl

我需要处理来自不同文件的值。我有5个输入,成功,手动,重试,当前。每个目录都有多个*.txt个文件。每个.txt文件都有hostname=<hostname>。我想知道每个主机名输入,成功,重试,当前和手动目录中有多少文件。

例如。

input
    -> A.txt  (HOSTNAME=host1)
    -> B.txt  (HOSTNAME=host2)
    -> C.txt  (HOSTNAME=host3)
    -> D.txt  (HOSTNAME=host1)

success
    -> P.txt (HOSTNAME=host1)
    -> Q.txt (HOSTNAME=host2)
    -> R.txt (HOSTNAME=host1)

OUTPUT
Host   | Input | Success | Current | Retry | Manual
host1  | 2     | 2       |  0      | 0     | 0
host2  | 1     | 1       |  0      | 0     | 0
host3  | 1     |0        |  0      | 0     | 0

想知道perl,python或bash中是否有任何库来执行此操作。

1 个答案:

答案 0 :(得分:1)

我建议您编写正确的bash脚本,或者更好的是,升级到完整的脚本语言。

这是一个可行的算法:

  1. 列表中的每个目录:
    1. 获取*.txt个文件的列表
    2. 打开每个文件
    3. 读取文件的每一行以查找匹配项
      1. 在匹配的文件上,增加由主机和目录键入的两级散列/字典/对象/映射/关联数组(或您选择的任何语言)。记录列表中的主机名。
  2. 从主机名列表中删除重复项
  3. 对主机名列表进行排序
  4. 使用主机名列表,目录列表和主机计数哈希来打印表格。
  5. 这是a link to Perl's built in functions organized by category。处理正则表达式,文件和目录的内容尤为重要。