|
大家好!
正在做一个日志分析的工作,这个日志以SA为关键字,有17640行。
例子中SA在文件的第6行,第2列。
SA取值有三种情况,SA=0 SA=1 SA=2。根据SA取值的不同,需要提取这个关键字之前和之后的数据的位置也不同。
如果SA=0,我需要提取第0行第0列的值NAME,
如果SA=1,我需要提取第0行第0列的值NAME ,第三行第3列第4列的值,第16行第0列和第1列的值
如果SA=2,我需要提取第0行第0列的值NAME ,第三行第3列第4列的值,第16行第0列和第1列的值, 还有第25行第0列和第1列的值
请问如何实现?谢谢!
with open('/root/temp/v1/vpn-1', "r") as f:
content = f.readlines()
print(type(content))
print(len(content))
print(type(content[0]))
print(content[0])
print(content[6])
print(content[0].split())
vpnname = content[0].split()[0]
rxb = content[3].split()[3]
txb = content[3].split()[4]
dec = content[16].split()[0]
enc = content[16].split()[1]
print(content[6].split()[2])
satype = content[6].split()[2]
if satype == 'sa=1':
print(vpnname, rxb, txb, dec, enc)
if satype == 'sa=2':
print(vpname, rxb, txb, sa1-dec, sa1-enc, sa2-dec, sa2-enc)
输出:
<class 'list'>
17640
<class 'str'>
name=n10.196.19.166 ver=2 serial=3d2 172.28.85.60:0->10.196.19.166:0
proxyid=n10.196.19.166 proto=0 sa=1 ref=2 serial=1
['name=n10.196.19.166', 'ver=2', 'serial=3d2', '172.28.85.60:0->10.196.19.166:0']
sa=1
name=n10.196.19.166 rxb=16604 txb=22508 dec:pkts/bytes=0/0, enc:pkts/bytes=25/3400 |
|