0

我正在尝试使用 python 中的小脚本在远程服务器中的 radius.log 中查找 MAC 地址。我想搜索一个特定的 mac 并打印包含该 mac 地址的完整行。我只能确认通过 search() 找到了 mac。

我的代码的一部分是:

prog=re.compile(self.MAC_ADDR)
sess.exec_command('tail -f /usr/local/var/log/radius/radius.log')
rl, wl, xl = select.select([sess],[],[],0.0)
if len(rl) > 0:   #stdout
    block= sess.recv(1024)
    macfound=prog.search(block)
    if macfound:
        print "##############################################################################"
        print  self.MAC_ADDR,"found in tail"
        time.sleep (1)
4

1 回答 1

1

仅使用字符串可能会更快:

for line in all_blocks.splitlines():
    if MAC in line:
         print(line)

这为您提供了 mac 地址所在的所有行,使用正则表达式:

prog = re.compile('^.*' + re.escape(MAC) + '.*$', re.MULTILINE)
lines = prog.findall(all_blocks)
于 2013-08-29T09:12:32.693 回答