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.
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
|