#! /usr/bin/gawk -f # Last edited on 2012-02-13 21:47:15 by stolfilocal BEGIN { # Reads output of "diff --side-by-side", # ouputs consistent "{OLD} {SEP} {NEW}" where # blank {SEP} is mapped to "=", # blank {OLD} or {NEW} are mapped to "_". abort = -1; } (abort >= 0) { exit abort; } (NF==2){ if ($1 == ">") { ow = "_"; sep = $1; nw = $2; } else if ($2 == "<") { ow = $1; sep = $2; nw = "_"; } else { ow = $1; sep = "="; nw = $2; } printf "%-30s %s %-30s\n", ow, sep, nw; next; } (NF==3){ ow = $1; sep = $2; nw = $3; printf "%-30s %s %-30s\n", ow, sep, nw; next; } // { data_error(("bad format")); } function data_error(msg) { printf "\n" > "/dev/stderr"; printf "%s:%d: %s\n", FILENAME, FNR, msg > "/dev/stderr"; abort = 1; exit 1; }