可以通过下面方法对shell输出的数据进行关键数据提取
- 示例1:
data2 = """
1 | 07/23/2022 | 01:39:47 | Event Logging Disabled SEL_Status | Log area reset/cleared | Asserted
2 | 07/23/2022 | 07:29:08 | System Boot Initiated BIOS_Boot_Up | Initiated by power up | Asserted
"""
对data2数据提取和处理
def mes_pro():
import re
log_data_re = dict(
#提取时间
time = r'\d{2}/\d{2}/\d{4} \| \d{2}:\d{2}:\d{2}',
#提取日志信息
log = r':\d{2} \| (.*)'
)
list = []
for k, v in log_data_re.items():
print(v)
pattern = re.compile(v, re.M)
ret = pattern.findall(data2)
list += ret
# print(list)
return list
dataset = mes_pro()
print(dataset)
out = ' '.join(dataset)
print(out)
在这里插入代码片
- 示例2:
```bash
import re
data = '''
name: lalala
ip: 10.120
PortID: ifname H 0/52
'''
def retest():
#正则表达式,匹配data数据中的value值
a = dict(
name = r'[ \t]+name:[ \t](.*)',
ip = r'[ \t]+ip:[ \t](.*)',
portid=r'[ \t]+PortID:[ \t]+(.*)'
)
list = []
for k,v in a.items():
# print(k,v)
out = re.compile(pattern=v,flags=re.M)
result = re.findall(v,data)
# print(out,result)
# print(result)
list += result
return list
a = retest()
print(a)
#拼接数据a
result = '|'.join(a)
print(result)
print(type(result))
name,ip,port = result.split('|')
print(ip)
print(name)
输出结果
['lalala', '10.120','ifname H 0/52']
lalala|10.120|ifname H 0/52
10.120
lalala