#!/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 if [ -z "$1" ]; then merge_pair "$first" "$second" else merge_pair "$first" "$second" | merge_set /dev/stdin "$@" fi } if [ -n "$2" ]; then merge_set "$@" else [ -n "$1" ] && cat "$1" fi