diff --git a/SSnR.py b/SSnR.py index 07033fa..c153817 100755 --- a/SSnR.py +++ b/SSnR.py @@ -105,7 +105,8 @@ def main(): return -1 for input_filename in filenames: try: - output_file = open((input_ex.subn(args["regex_output"], input_filename))[0], "w", encoding="utf8") + output_file = open((input_ex.subn(args["regex_output"], input_filename))[0], "w", + encoding="utf8") output_files.append(output_file) except OSError as exception: print("Error: file not found: " + str(exception)) @@ -150,8 +151,11 @@ def main(): print("File: " + filename) print(" - Number of replace: " + str(nb_replace)) else: - print("File: " + filename) - search(ex, string, is_file) + nb_match, str_found = search(ex, string, is_file) + if nb_match > 0: + print("File: " + filename) + print(" - Number of match: " + str(nb_match)) + print(str_found) else: if args["replace"] is not None: replace_string, nb_replace = replace(ex, string, args["replace"]) @@ -163,7 +167,9 @@ def main(): if args["print_nb_match"]: print("Number of replace: " + str(nb_replace)) else: - search(ex, string, is_file) + nb_match, str_found = search(ex, string, is_file) + print("Number of match: " + str(nb_match)) + print(str_found) return 0 def compile_regex(ex, ignore_case): @@ -192,16 +198,15 @@ def search(ex, string, is_file): ite = ex.finditer(string) nb_match = 0 + str_found = "" for match in ite: nb_match += 1 if is_file: num_line, begin_pos, end_pos = find_line(match.start(0), match.end(0), new_lines) - print(" - Found \"" + match.group(0) + "\" at line " + str(num_line) + " [" + str(begin_pos) + - ":" + str(end_pos) + "]") + str_found += " - Found \"%s\" at line %d [%d:%d]\n" % (match.group(0), num_line, begin_pos, end_pos) else: - print(" - Found \"" + match.group(0) + "\" at [" + str(match.start(0) + 1) + - ":" + str(match.end(0)) + "]") - print(" - Number of match: " + str(nb_match)) + str_found += " - Found \"%s\" at [%d:%d]\n" % (match.group(0), match.start(0), match.end(0)) + return nb_match, str_found def replace(ex, string, replace_string): @@ -244,4 +249,3 @@ def find_line(begin_pos, end_pos, new_lines): if __name__ == '__main__': sys.exit(main()) -