有没有更好的办法?

时间:2016-10-11 15:56:11

标签: python

我的文件说abc.txt格式如下:

+ : @group2 : ALL  
+ : @grp_xvz : ALL  
+ : @group_abc_app: ALL  
+ : @group_1_abc : ALL  
+ : @group_2_xyz : ALL  
+ : @group_3_def@@nmo_hosts : ALL

我需要grep查看特定条目并检查文件大小是否为abc.txt> 220

+ : @group_2_xyz : ALL   or 
+ : @group_3_def@@nmo_hosts : ALL   
and  filesize of abc.txt > 220  

在bash中,我可以这样做

if grep --quiet "+[[:blank:]]:[[:blank:]]@group_2_xyz[[:blank:]]*:[[:blank:]]ALL" abc.txt   
||  
 grep --quiet +[[:blank:]]:[[:blank:]]@group_3_def[@A-Za-z0-9_][[:blank:]]:[[:blank:]] abc.txt   
and                                                   
[ du -sb abc.txt | awk '{print $1}' -gt 220 ]; then  

..do..something

如何在python中做同样的事情?我试图使用" re.findall'但不确定我是否可以在那里使用多个条件?或者如果有人能提出最好的建议?

re.findall(r'+\s*:\s*@group_2_xyz\s*:\s*ALL', open('abc.txt,'r').read())

提前致谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

import os, re

match = re.search(
    r'^\+ *: *(@group_2_xyz|@group_3_def@@nmo_hosts) *: *ALL$',
    open('abc.txt').read(), re.M
    )

print(os.stat('abc.txt').st_size > 220, match is not None)