#!/hint/bash alpine_keys=( 'NICKNAME' 'FN' 'EMAIL' 'FCC' 'COMMENT' ) keys=( 'UID' "${alpine_keys[@]}" 'REV' ) find_vcfs() { { find "${git_dir}" \ -name '.git' \ -prune \ , \ -type f \ -name '*.vcf' \ -printf '%p\n' git -C "${git_dir}" archive HEAD \ | tar -t \ | sed ' /\.vcf$/!d s@^@'"${git_dir%/}"'/@ ' } \ | sort -u \ | if [ -n "${old_uids}" ]; then join -1 1 -2 3 -o 2.1,2.2,2.3 -a 1 -e 1 -t ' ' - <( printf "${git_dir}"'/%s.vcf\n' ${old_uids} \ | cat -n \ | awk '{print "0 " $1 " " $2}' \ | sort -k3,3 ) \ | sort -k1n,1 -k2n,2 \ | awk '{print $3}' else cat fi } git_dir="$1" if [ ! -d "${git_dir}" ]; then >&2 printf 'invalid git dir: "%s"\n' "${git_dir}" exit 1 fi