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
Raw Permalink Normal View History

2021-06-12 14:54:23 +00:00
#!/bin/zsh
fln=($@)
flc=(${fln})
2021-06-12 18:20:50 +00:00
idc="0"
2021-06-12 14:54:23 +00:00
typeset -A fls
for i in $flc; do
2021-06-12 18:20:50 +00:00
id="$(grep -m 1 -oP '(?<=^[mM]essage-[iI][dD]\:\ \<).*(?=\>)' $i)"
2021-06-12 14:54:23 +00:00
2021-06-12 18:20:50 +00:00
if [ ! -z "$id" ]; then
fls[$i]="$id"
2021-06-12 14:54:23 +00:00
2021-06-12 18:20:50 +00:00
idc=$(( ${idc} + 1 ))
printf '%.40s: %20s\r' 'Message-IDs collected' "${idc}/${#fln}" >&2
fi
2021-06-12 14:54:23 +00:00
done
2021-06-12 18:20:50 +00:00
printf '\n' >&2
typeset -A idfcnt
for v in $fls; do
idfcnt[$v]="$(( ${idfcnt[$v]:-0} + 1 ))"
done
2021-06-12 14:54:23 +00:00
2021-06-12 18:20:50 +00:00
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
2021-06-12 14:54:23 +00:00
done
2021-06-12 18:20:50 +00:00
[ "$fdc" -gt 0 ] && printf '\n' >&2