我有一个包含字符串的文件,output
如下面的代码所示。我想提取数据:
我如何使用正则表达式来实现这一目标?我可以将两个正则表达式组合成一个吗?
我也需要忽略"dropped"
字符串
port: dropped-packets
s1-eth1: 21
s1-eth2: 12
...
processQdisc.py
output = '''
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 47002846 bytes 549464 pkt (dropped 0, overlimits 0 requeues 1)
backlog 0b 0p requeues 1
qdisc htb 5: dev s2-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 25845 bytes 186 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 24941 bytes 182 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 24043 bytes 177 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 25506 bytes 183 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 25173 bytes 182 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 26996 bytes 197 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 26793 bytes 197 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28350 bytes 206 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 26856 bytes 195 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 27651 bytes 199 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28908 bytes 208 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 27723 bytes 198 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28996 bytes 206 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth7 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth8 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth9 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28836 bytes 204 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth10 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth11 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28404 bytes 202 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28154 bytes 199 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28244 bytes 200 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc netem 10: dev s2-eth1 parent 5:1 limit 1000 loss 10%
Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc netem 10: dev s1-eth1 parent 5:1 limit 1000 loss 10%
Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 4942 bytes 36 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 23646 bytes 173 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 6025 bytes 52 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 23018 bytes 160 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s5-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 4002 bytes 24 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 24586 bytes 185 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 5587 bytes 43 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 23720 bytes 169 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
'''
我的代码:
import re
searchObj = re.findall( r's\d-eth\d', output, re.M|re.I)
searchObj2 = re.findall( r'dropped \d*', output, re.M|re.I)
print searchObj
print searchObj2
我得到的输出:
['s2-eth2', 's2-eth3', 's2-eth4', 's2-eth5', 's2-eth6', 's3-eth2', 's3-eth3', 's3-eth4', 's3-eth5', 's3-eth6', 's4-eth2', 's4-eth3', 's4-eth4', 's4-eth5', 's4-eth6', 's4-eth7', 's4-eth8', 's4-eth9', 's4-eth1', 's4-eth1', 's6-eth2', 's6-eth3', 's6-eth4', 's6-eth5', 's6-eth6', 's2-eth1', 's2-eth1', 's1-eth1', 's1-eth1', 's3-eth1', 's1-eth2', 's4-eth1', 's1-eth3', 's5-eth1', 's1-eth4', 's6-eth1', 's1-eth5']
['dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 3', 'dropped 3', 'dropped 21', 'dropped 21', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0']
合并列表可以是一种选择
#processQdisc.py
import re
output = '''
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 47002846 bytes 549464 pkt (dropped 0, overlimits 0 requeues 1)
backlog 0b 0p requeues 1
qdisc htb 5: dev s2-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 25845 bytes 186 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 24941 bytes 182 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 24043 bytes 177 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 25506 bytes 183 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 25173 bytes 182 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 26996 bytes 197 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 26793 bytes 197 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28350 bytes 206 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 26856 bytes 195 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 27651 bytes 199 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28908 bytes 208 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 27723 bytes 198 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28996 bytes 206 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth7 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth8 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth9 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28836 bytes 204 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth10 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth11 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28404 bytes 202 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28154 bytes 199 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 28244 bytes 200 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s2-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc netem 10: dev s2-eth1 parent 5:1 limit 1000 loss 10%
Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc netem 10: dev s1-eth1 parent 5:1 limit 1000 loss 10%
Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s3-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 4942 bytes 36 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 23646 bytes 173 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s4-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 6025 bytes 52 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 23018 bytes 160 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s5-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 4002 bytes 24 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 24586 bytes 185 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s6-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 5587 bytes 43 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc htb 5: dev s1-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 23720 bytes 169 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
'''
searchObj = re.findall( r's\d-eth\d', output, re.M|re.I)
searchObj2 = re.findall( r'dropped \d*', output, re.M|re.I)
# print searchObj
# print searchObj2
print {i:j for i in searchObj for j in searchObj2}
输出:
{'s1-eth2': 'dropped 0', 's4-eth2': 'dropped 0', 's4-eth3': 'dropped 0', 's4-eth1': 'dropped 0', 's4-eth6': 'dropped 0', 's4-eth7': 'dropped 0', 's4-eth4': 'dropped 0', 's4-eth5': 'dropped 0', 's4-eth8': 'dropped 0', 's4-eth9': 'dropped 0', 's1-eth5': 'dropped 0', 's1-eth4': 'dropped 0', 's5-eth1': 'dropped 0', 's1-eth1': 'dropped 0', 's1-eth3': 'dropped 0', 's3-eth6': 'dropped 0', 's3-eth5': 'dropped 0', 's3-eth4': 'dropped 0', 's3-eth3': 'dropped 0', 's3-eth2': 'dropped 0', 's3-eth1': 'dropped 0', 's2-eth1': 'dropped 0', 's2-eth2': 'dropped 0', 's2-eth3': 'dropped 0', 's2-eth4': 'dropped 0', 's2-eth5': 'dropped 0', 's2-eth6': 'dropped 0', 's6-eth4': 'dropped 0', 's6-eth5': 'dropped 0', 's6-eth6': 'dropped 0', 's6-eth1': 'dropped 0', 's6-eth2': 'dropped 0', 's6-eth3': 'dropped 0'}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句