My input file contain attributes
if(match($OPTION_EnableDetails, "1") or match($OPTION_EnableDetails_juniper, "1")) {details($juniFileXferStatus,$juniFileXferTimeStamp,$juniFileXferIndex)}@ExtendedAttr = nvp_add(@ExtendedAttr, "juniFileXferStatus", $juniFileXferStatus, "juniFileXferTimeStamp", $juniFileXferTimeStamp, "juniFileXferIndex",$juniFileXferIndex)
I got lot of cases in my input file, How can i compare all instances start with $ in details and instances start with $ in nvp_add here?
import recaselines_index = []
cases = []
readlines = []def read(in_file):global casesglobal caselines_indexglobal readlineswith open(in_file, 'r') as file:for line in file.readlines():readlines.append(line.strip())for line in readlines:case_search = re.search("case\s\".+?\"\:\s", line)if case_search:caselines_index.append(readlines.index(line))#print caselines_indexcaselines_index_iter = iter(caselines_index)int_line_index = int(next(caselines_index_iter))int_next_index = int(next(caselines_index_iter))while True:try:case_text = ' '.join(readlines[int_line_index:int_next_index]).strip()case = [readlines[int_line_index].strip(), case_text]cases.append(case)int_line_index = int_next_indexint_next_index = int(next(caselines_index_iter))except StopIteration:case_text = ' '.join(readlines[int_line_index:len(readlines) - 1]).strip()case = [readlines[int_line_index].strip(), case_text]cases.append(case)breakdef work():MATCH = 1for case_list in cases:details = []nvp_add = []caseline = case_list[0].strip()nvp = re.findall("details\(.+?\)", case_list[1].strip())for item in nvp:result_list = re.findall("(\$.+?)[\,\)]", item)for result in result_list:if "$*" not in result:details.append(result)nvp = re.findall("nvp_add\(.+?\)", case_list[1].strip())for item in nvp:result_list = re.findall("(\$.+?)[\,\)]", item)for result in result_list:if "$*" not in result:nvp_add.append(result)missing_from_details, missing_from_nvp_add = [], []missing_from_details = [o for o in nvp_add if o not in set(details)]missing_from_nvp_add = [o for o in details if o not in set(nvp_add)]if missing_from_nvp_add or missing_from_details:MATCH = 0print caseline + " LINE - " + str(readlines.index(caseline) + 1)for mismatch in missing_from_details:print "Missing from details:"print mismatchfor mismatch in missing_from_nvp_add:print "Missing from nvp_add:"print mismatchprint "\n"if MATCH == 1:print "MATCH"else:print "MISMATCHES"def main():in_file = "target1.txt"read(in_file)work()if __name__=="__main__":main()
If i understand correctly this is it