#!/usr/bin/env gawk BEGIN { file=""; ranges=""; } match($0, /^\+\+\+ b\/(.+)$/, matched) { if(ranges!="") print(ranges, "--", file); file=matched[1]; ranges=""; } match($0, /^@@ -([0-9]+),([0-9]+) /, matched) && file!="" { if(matched[2]!="0") ranges = ranges " -L " matched[1] ",+" matched[2]; } END { if(ranges!="") print(ranges, "--", file); }