diff --git a/parse_stats.awk b/parse_stats.awk index f2b36ec..959610a 100755 --- a/parse_stats.awk +++ b/parse_stats.awk @@ -4,30 +4,25 @@ BEGIN { failed = 0 } -/^┌───────────────┬──────────────────────────┐$/ { - in_table = 1 - next -} - -in_table && /^│ Requests[[:space:]]+│/ { - if (match($0, /[0-9]+ \([0-9]+ Passed, [0-9]+ Failed\)/)) { +/Requests/ && /Passed/ && /Failed/ { + # Ищем строку вида: │ Requests │ 11 (10 Passed, 1 Failed) │ + match($0, /[0-9]+ \([0-9]+ Passed, [0-9]+ Failed\)/) + if (RSTART > 0) { s = substr($0, RSTART, RLENGTH) + # Убираем скобки и лишние символы gsub(/[()]/, "", s) split(s, parts, /[[:space:],]+/) total = parts[1] passed = parts[2] failed = parts[4] - in_table = 0 } } -in_table && /^└───────────────┴──────────────────────────┘$/ { - in_table = 0 -} - END { if (total == 0) { - print "WARNING: Could not parse stats from logs.txt" > "/dev/stderr" + # Если не нашли статистику — выводим нули + printf "Total=0, Passed=0, Failed=0\n" + } else { + printf "Total=%d, Passed=%d, Failed=%d\n", total, passed, failed } - printf "Total=%d, Passed=%d, Failed=%d\n", total, passed, failed -} +} \ No newline at end of file