#!/bin/bash test_domain="$(dirname "$(readlink -f "$0")")/test-domain" receive_key="$(dirname "$(readlink -f "$0")")/receive-key" tmp_dir="$(mktemp -d)" pushd "${tmp_dir}" > /dev/null grep '@' ~/.thunderbird/*.default/ImapMail/imap.gmx.net/INBOX | \ sed 's|\s\+|\n|g' | \ tr ' \t<>();"[]~=+#:,$|&/?%{}/\\!*^`'"'" '\n' | \ grep '^[^@]\+@[^@]\+\.[^@]\+$' | \ pv --line-mode | \ grep '^[_0-9a-zA-Z.-]\+@[_0-9a-zA-Z.-]\+$' > \ adressen sort -uf adressen | \ tee adressen.sorted | \ wc -l mv adressen.sorted adressen cut -d@ -f2 adressen | \ sort -uf | \ tee domains | \ wc -l parallel -j 100 "${test_domain}" '{}' \; < domains > domains.ok mv domains.ok domains ( sed 's|$| 0|' domains sed 's|^\(.*\)@\(.*\)$|\2 1 \1@\2|' adressen ) | \ sort -k1,1 -k2n,2 | \ while read -r a b c; do if [ "${b}" == "0" ]; then domain="${a}" continue fi if [ "${a}" == "${domain}" ] && [ "${b}" == "1" ]; then echo "${c}" fi done | \ tee adressen.ok | \ wc -l mv adressen.ok adressen xargs -n1 "${receive_key}" < adressen popd > /dev/null rm -rf --one-file-system "${tmp_dir}"