2016-10-11 17 views
0

I-Datei sagen abc.txt mit folgendem Format:Gibt es einen besseren Weg?

+ : @group2 : ALL 
+ : @grp_xvz : ALL 
+ : @group_abc_app: ALL 
+ : @group_1_abc : ALL 
+ : @group_2_xyz : ALL 
+ : @[email protected]@nmo_hosts : ALL 

ich für bestimmte Einträge grep muß und prüfen, ob die abc.txt Dateigröße> 220

+ : @group_2_xyz : ALL or 
+ : @[email protected]@nmo_hosts : ALL 
and filesize of abc.txt > 220 

In bash ich so tun kann,

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 

Wie in python? Ich hat versucht, „re.findall‘ zu verwenden, aber nicht sicher, ob ich es mehrere Bedingungen verwenden kann, oder wenn jemand besten Weg vorschlagen kann

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

Vielen Dank im Voraus

+0

dank Ponnarasu für die Formatierung Bereinigung zu helfen. Geschätzt – bob

Antwort

0

starten:?.

import os, re 

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

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

Großen dank arbeitete es !! – bob

+0

@bob. Wenn Sie die Antwort nützlich gefunden, beachten Sie bitte die Annahme (dh auf der Zecke Markierung klicken). – ekhumoro

+0

danke Ekhumoro! Entschuldigung, ich bin neu hier, Es wird also einige Zeit brauchen, um sich anzupassen. – bob

Verwandte Themen