#!/usr/bin/awk -f # Usage borg diff ::$src $dst | borg-collect-diff [-v name=nameval] [-v echo=echoval] # nameval: Prefix results with informational string # echoval: Any combination of "a", "r", and "m", "l". # "a", "r", and "m" print added, removed, and modified files unchanged. # "l" forces line-bufferring, even if stdout is not a terminal. BEGIN { r=0; a=0; m=0; total=0; } /^added/ { if(echo ~ /.*a.*/) { print $0; if(echo ~ /.*l.*/) { system(""); } } a += 1; } /^removed/ { if(echo ~ /.*r.*/) { print $0; if(echo ~ /.*l.*/) { system(""); } } r += 1 } /^\s*\+/ { if(echo ~ /.*m.*/) { print $0; if(echo ~ /.*l.*/) { system(""); } } m += 1; } { total += 1; } END { if(name) { name = name ":" print name, "a", a, "r", r, "m", m, "total", total; system(""); } else { print "a", a, "r", r, "m", m, "total", total; system(""); } }