#!/bin/sh merge_pair() { { tee /dev/stderr < "$1" | diff -n - "$2" | sed -n '3,$p'; } 2>&1; } merge_set() { first="$1"; second="$2"; shift 2 [ -z "$1" ] && merge_pair "$first" "$second" || \ merge_pair "$first" "$second" | merge_set /dev/stdin "$@"; } [ -n "$2" ] && merge_set "$@" || { [ -n "$1" ] && cat "$1"; }