summaryrefslogtreecommitdiff
path: root/maildups.sh
blob: 9c78bd6f5227c830d13024e61887e0acff54744b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/sh
# Delete duplicate messages in $1 based on the Message-ID header

maildir=$1

echo -n 'Generating Message-ID table... '
msgid_file=`mktemp`
grep -rH -m1 '^[Mm]essage-[Ii][Dd]:' "$maildir"| \
  sed -r 's/(.*):[Mm]essage-[Ii][Dd]:\s*(\S.*)/\2:\1/'| \
  sort -n>"$msgid_file"
echo 'done'

< "$msgid_file" sed 's/:.*//'|uniq -d|while read msgid; do
    echo "Removing dups of $msgid"
    < "$msgid_file" sed -n "s/^$msgid://p"|sed 1d|xargs -d'\n' rm -fv|sed 's/./  &/'
done

rm -f "$msgid_file"