import glob for item in glob.glob('./*.m'): fh = open(item,'r') content = fh.read() content = content.split('\n') n = len(content) if content[n-2].find('end')>-1 and content[n-2].find('end;')==-1 or content[n-1].find('end')>-1 and content[n-1].find('end;')==-1 : print item