This repository has been archived on 2021-06-12. You can view files and clone it, but cannot push or open issues or pull requests.
maildedupe-zsh/maildedupe.zsh

46 lines
765 B
Bash
Executable File

#!/bin/zsh
fln=($@)
flc=(${fln})
idc="0"
typeset -A fls
for i in $flc; do
id="$(grep -m 1 -oP '(?<=^[mM]essage-[iI][dD]\:\ \<).*(?=\>)' $i)"
if [ ! -z "$id" ]; then
fls[$i]="$id"
idc=$(( ${idc} + 1 ))
printf '%.40s: %20s\r' 'Message-IDs collected' "${idc}/${#fln}" >&2
fi
done
printf '\n' >&2
typeset -A idfcnt
for v in $fls; do
idfcnt[$v]="$(( ${idfcnt[$v]:-0} + 1 ))"
done
fdc="0"
for k v in ${(kv)idfcnt}; do
if [ "$v" -gt 1 ]; then
FL=()
while true; do
FN="${(k)fls[(r)$k]}"
if [ ! -z "$FN" ]; then
unset "fls[$FN]"
FL+=("$FN")
else
break
fi
done
printf '%s\n' "$FL"
fdc=$(( ${fdc} + ${#FL} ))
printf '%.40s: %20s\r' 'Message-ID duplicates' "${fdc}/${idc}" >&2
fi
done
[ "$fdc" -gt 0 ] && printf '\n' >&2