我需要解析这样的文件:
Nmap scan report for pc15393.foster.xxx.com (192.168.2.211)
Nmap scan report for lab-776.foster.xxx.com (192.168.2.212)
Nmap scan report for 78T458Y.foster.xxx.com (192.168.2.213)
我想摆脱“Nmap 扫描报告”并得到以下内容:
pc15393.foster.xxx.com (192.168.2.211)
lab-776.foster.xxx.com (192.168.2.212)
78T458Y.foster.xxx.com (192.168.2.213)
如果我使用以下正则表达式:extract = re.findall (r'for.*',line)
我会得到以“for”开头的所有内容,但这是错误的。有人能帮我吗?非常感谢 Knud
答案1
给你。显然,将 my_file.txt 替换为你的文件。这是 python 2.7.12
#/usr/bin/env python
import re
pattern = re.compile("Nmap scan report for (.*)")
for i, line in enumerate(open('my_file.txt')):
for match in re.finditer(pattern, line):
print match.group(1)
答案2
如果您只想获取这些数据,最好使用 awk。
cat yourfile | awk '{print $5 $6}'
如果提供您想要的信息。