commit 8ab8b36a0a186faabe522f5e32292b26b297085e Author: Alex Denes Date: Sat Jun 12 14:54:23 2021 +0000 Initial commit diff --git a/lacomp.zsh b/lacomp.zsh new file mode 100755 index 0000000..e5e3ba6 --- /dev/null +++ b/lacomp.zsh @@ -0,0 +1,34 @@ +#!/bin/zsh + +zmodload zsh/stat + +function ctime { + zstat -F '%s' +ctime -- "$1" +} + +function mdate { + local dfmt="$(grep -m 1 -ioP '(?<=^Date\:\ ).*' ${fls[1]})" + date '+%s' -d "$dfmt" +} + +while read LINE; do + fls=(${(s. .)LINE}) + + unset cts + typeset -A cts + cts[${fls[1]}]=$(ctime "${fls[1]}") + cts[${fls[2]}]=$(ctime "${fls[2]}") + + unset mds + typeset -A mds + mds[${fls[1]}]=$(mdate "${fls[1]}") + mds[${fls[2]}]=$(mdate "${fls[2]}") + + if [ "${#cts}" -ne 2 ]; then + TMS=(${(nO)${(v)mds}}) + echo "${(k)mds[(r)${TMS[1]}]}" + else + TMS=(${(nO)${(v)cts}}) + echo "${(k)cts[(r)${TMS[1]}]}" + fi +done diff --git a/maildedupe.zsh b/maildedupe.zsh new file mode 100755 index 0000000..d08f58c --- /dev/null +++ b/maildedupe.zsh @@ -0,0 +1,31 @@ +#!/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