我试图在python中使用一个小脚本在远程服务器的radius.log中找到一个MAC地址。我想搜索一个特定的mac并打印包含该mac地址的完整行。我只能确认搜索()找到了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)
答案 0 :(得分: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)