32 lines
558 B
Bash
Executable File
32 lines
558 B
Bash
Executable File
#!/bin/zsh
|
|
|
|
fln=($@)
|
|
|
|
flc=(${fln})
|
|
fct="0"
|
|
typeset -A fls
|
|
|
|
for i in $flc; do
|
|
|
|
fls[$i]=$(grep -m 1 -ioP '(?<=^Message-ID\:\ \<).*(?=\>)' "$i")
|
|
|
|
fct=$(( ${fct} + 1 ))
|
|
printf '%.40s: %20s\r' 'Message-IDs collected' "${fct}/${#fln}" >&2
|
|
done
|
|
|
|
fct="0"
|
|
for k1 v1 in ${(kv)fls}; do
|
|
|
|
for k2 v2 in ${(kv)fls}; do
|
|
if [[ "$v1" == "$v2" ]] && [[ "$k1" != "$k2" ]]; then
|
|
echo "$k1 $k2"
|
|
printf 'Message-ID duplicate: %s\n' "$v1" >&2
|
|
fi
|
|
done
|
|
|
|
fct=$(( ${fct} + 1 ))
|
|
unset "fls[$k1]"
|
|
|
|
printf '%.40s: %20s\r' 'Message-IDs compared' "${fct}/${#fln}" >&2
|
|
done
|