#!/bin/bash sed ' :a N s/\n\s\+/ / ta P D ' tmp/header \ | sed -n ' s@^\(bcc\|Bcc\|BCC\|cc\|Cc\|CC\|To\|Reply-To\): @@ T :b s@^\(\([^"]*"[^"]*"\)*[^"]*\),\s\+@\1\n@g tb p ' \ | sed ' s#^\(.*\S\)\s*<\(\S\+@\S\+\)>$#\2 \1# t /^\S\+@\S\+$/!d ' \ | sort -uf \ | while read -r email comment; do printf '%s %s %s\n' \ "${#comment}" \ "$(echo "$comment" | base64 -w0)" \ "${email}" done \ | sort -k3,3 -k1nr,1 \ | uniq -f2 \ | while read -r _ comment email; do printf '\t%s\t%s\n' \ "$( printf '%s\n' "${comment}" \ | base64 -d \ | sed 's@^\(["'"'"']\)\(.*\)\1@\2@' )" \ "${email}" done