pw_presubmit: Remove blank lines from summaries

Remove blank lines from failure summaries. These were especially
prominent in http://go/bbid/8790842636123473489.

Change-Id: Id604286611930cb120f53b7489c6a9cd22380976
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126997
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
diff --git a/pw_presubmit/py/bazel_parser_test.py b/pw_presubmit/py/bazel_parser_test.py
index d35da71..4c7d45e 100644
--- a/pw_presubmit/py/bazel_parser_test.py
+++ b/pw_presubmit/py/bazel_parser_test.py
@@ -65,7 +65,6 @@
 _REAL_TEST_SUMMARY = """
 ERROR: /usr/local/google/home/mohrr/pigweed/pigweed/pw_kvs/BUILD.bazel:25:14: Compiling pw_kvs/entry.cc failed: (Exit 1): gcc failed: error executing command
 # Execution platform: @local_config_platform//:host
-
 pw_kvs/entry.cc:49:20: error: no member named 'Dat' in 'pw::Status'
     return Status::Dat aLoss();
            ~~~~~~~~^
diff --git a/pw_presubmit/py/pw_presubmit/bazel_parser.py b/pw_presubmit/py/pw_presubmit/bazel_parser.py
index 50282d1..39f42cd 100644
--- a/pw_presubmit/py/pw_presubmit/bazel_parser.py
+++ b/pw_presubmit/py/pw_presubmit/bazel_parser.py
@@ -55,7 +55,8 @@
 
                 error_lines.append(line)
 
-    return '\n'.join(error_lines)
+    result = '\n'.join(error_lines)
+    return re.sub(r'\n+', '\n', result)
 
 
 if __name__ == '__main__':
diff --git a/pw_presubmit/py/pw_presubmit/ninja_parser.py b/pw_presubmit/py/pw_presubmit/ninja_parser.py
index ed1ad8b..2c60095 100644
--- a/pw_presubmit/py/pw_presubmit/ninja_parser.py
+++ b/pw_presubmit/py/pw_presubmit/ninja_parser.py
@@ -49,4 +49,5 @@
                     failure_lines.extend([last_line, line])
             last_line = line
 
-    return '\n'.join(failure_lines)
+    result = '\n'.join(failure_lines)
+    return re.sub(r'\n+', '\n', result)