-3

我以前从未使用过 Python 或 Perl。由于不可预见的情况,我从工作中得到了一个项目,希望你们中的一个人能提供帮助。我们将 BRO 用于 IDS 系统。我应该编写一个脚本来打开一个日志文件(.gz 格式),在日志中搜索保存在文本文件中的关键字列表,排除任何在另一个文件中列出关键字的结果,然后输出这些结果进入一个新的.gz。它应该每天运行 3 次。我不知道从哪里开始,但任何帮助都会非常有帮助,非常感谢。

4

1 回答 1

1

啊,经过几次重读,我想我开始看到这个问题了…… IDS和BRO与这个问题完全无关 ,实际上把事情搞糊涂了

我想我可以将您的问题分解为几个子问题

问题 1.如何打开 gzip 编码的文件进行阅读?

import gzip
with gzip.GzipFile("/path/to/some_log_file.gz") as input_plaintext_filehandle:
     for line in input_plaintext_filehandle:
         print line

问题 2.如何写入 gzip 文件?

import gzip
with gzip.GzipFile("/path/to/some_log_file.gz","w") as output_file:
     output_file.write("Hello GZIP World")

问题 3.如何根据 wordlist.txt 过滤掉行?

words = set(open("wordlist.txt").read().split())
for line in open_file_handle:
    if words.intersection(line.split()):
       print "Match Found"
    else:
       print "No Match Found"

我认为这应该足以让您开始解决这个问题。一旦遇到困难,请随时返回并显示一些代码

于 2016-03-24T03:28:08.820 回答