summaryrefslogtreecommitdiff
path: root/maildups.sh
diff options
context:
space:
mode:
Diffstat (limited to 'maildups.sh')
-rw-r--r--maildups.sh11
1 files changed, 11 insertions, 0 deletions
diff --git a/maildups.sh b/maildups.sh
new file mode 100644
index 0000000..d5521da
--- /dev/null
+++ b/maildups.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+# Delete duplicate messages in $1 based on the Message-ID header
+
+maildir=$1
+
+msgid_file=`mktemp`
+grep -rH -m1 '^[Mm]essage-[Ii][Dd]:' "$maildir"|sort -n>"$msgid_file"
+
+< "$msgid_file" sed 's/:.*//'|uniq -d|while read msgid; do
+ sed -n "s/^$msgid://p"|sed 1d|xargs -d'\n' rm -f
+done