I am writing a program where I have to check if all address in address-set contains speicific key-Word:
For Example A:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD71"
For Example B:
set group address "Private-MT" "ABCD45-48/XYCD70-71"
set group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/XYCD70-71" add "XYCD70"
set group address "Private-MT" "ABCD45-48/XYCD70-71" add "XYCD71"
in this example, the Address-set name is "ABCD45-48/70-71", so before I delete this address set completely, I need to check that all the members for this address set must have ABCD in there name.
if they all have ABCD in there name delete entire address-set
OUTPUT for A:
unset group address "Private-MT" "ABCD45-48/70-71"
else delete specific line.
OUTPUT for B:
unset group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD47"
unset group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD48"
Your question isn't really clear, but I will ask your question in the title. If you have a string and you like to search a sub-string you can only use
if substring in string:
#do what you want to do
another way is to use regular expression, here the documentations re python
next time please share your script to help everyone to understand your problem ;)
EDIT
filename = "test.text"
import re
def splitAddresses(data):
addresses=[]
l=[]
pattern=re.compile("^[GROUP]+[0-9]+[:]$")
for element in data:
isAmatch=pattern.match(element)
if isAmatch==None:
l.append(element)
else:
addresses.append(l)
l=[]
addresses.append(l)
return(addresses[1:])
def parseAddress():
with open(filename) as f:
data = f.readlines()
addresses=splitAddresses(data)
for element in addresses:
prefix=element[0][32:36]
length_data=len(element)
for address in element[1:]:
if address.count(prefix)!=2:
element.remove(address)
new_length = len(element)
if new_length==length_data:
print(element[0])
else:
print(element[1:])
parseAddress()
Tried with this file
GROUP1:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD71"
GROUP2:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "XYCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "XYCD71"
the Output was :
set group address "Private-MT" "ABCD45-48/70-71"
['set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"\n', 'set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"\n']
you can edit the script and store infos because I did a print to show you that's works ;)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.