Thunderbird Adressbücher per Script konvertieren und exportieren
Achtung!
Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos
Hinweis:
Diese Howto-Anleitung wurde zuletzt von Bourness am 05.01.2018 unter Ubuntu 16.04 erfolgreich getestet.
Problembeschreibung¶
Über die grafische Benutzeroberfläche (GUI) von Thunderbird ist es sehr einfach ein beliebiges Adressbuch manuell in eine CSV-Datei zu exportieren. Thunderbird kennt aber leider keinen entsprechenden Befehl für die Kommandozeile (CL). Dieser Umstand ist insbesondere dann ärgerlich, wenn man den Konvertierungsvorgang automatisiert per Script realisieren möchte. Einen Ausweg bietet der Mork Converter, der in diesem Howto zur Anwendung kommt.
Voraussetzungen¶
1. Vor der Durchführung dieser Anleitung muss sichergestellt sein, dass die hier benutzte Ordnerstruktur (~/.thunderbird) vorhanden ist. Dies kann bei einer Standardinstallation von Ubuntu 16.04, in der Unity Desktop Version, durch das einmalige Starten von Thunderbird sichergestellt werden.
2. Der Mork Converter setzt Python 2 (Version 2.4 oder höher) voraus, was unter Ubuntu 16.04 automatisch gegeben ist. Python 3 wird zurzeit vom Mork Converter nicht unterstützt!
Problemlösung¶
Schritt 1: (optional)¶
Das System aktualisieren.
sudo apt update sudo apt upgrade
Schritt 2:¶
Python Lex-Yacc installieren.
sudo apt install python-ply
Schritt 3:¶
Den Mork Converter mit
cd ~/Downloads wget https://github.com/KevinGoodsell/mork-converter/archive/master.zip
downloaden und anschließend mit
unzip ./master.zip -d ~/.local/share/applications
entpacken.
Schritt 4:¶
Ab diesem Schritt beginnt der eigentliche Konvertierungsvorgang.
Zunächst wechselt man mit
cd ~/.local/share/applications/mork-converter-master/src
in das Arbeitsverzeichnis des Mork Converters.
Jetzt wird per
find ~/.thunderbird -name abook.mab -exec cp {} abook_save.mab \;
das gewünschte lokal gespeicherte Adressbuch gefunden und als Kopie unter einem abweichenden Dateinamen gespeichert.
Hinweis:
Möchte man ein anderes lokales Adressbuch konvertieren, so ist beim find Befehl dessen Dateiname anzugeben. (Beispiel: abook-1.mab statt abook.mab)
Schritt 5:¶
Konvertieren der Datei (abook_save.mab).
python mork --csv --outname=Adressbuch abook_save.mab
Damit ist die eigentliche Konvertierung abgeschlossen.
Allerdings hat die erstellte CSV-Datei einen ungebräuchlichen Dateinamen, befindet sich in einem (vom Mork Converter) neu erstellten versteckten Ordner und beinhaltet noch einige unerwünschte Zeilen und Spalten.
Schritt 6:¶
Zum Umbenennen der Datei wechselt man mit
cd ./Adressbuch
in den neu erstellten Ordner. Dort befinden sich zwei Dateien, von denen aber nur eine für die weitere Bearbeitung relelant ist.
Mit dem Befehl
mv ns:addrbk:db:row:scope:card:all-1 Adressbuch.csv
wird die relevante Datei in Adressbuch.csv umbenannt.
Schritt 7:¶
Das Entfernen der unerwünschten Zeilen und Spalten wird durch die Befehle
sed '/^ns:addrbk:db:row:scope:data:all,1,,,,,,,,,,,,,,,,,,,,,,,,,/d' Adressbuch.csv >Adressbuch.tmp cut -d, -f3- Adressbuch.tmp >Adressbuch.csv
erreicht.
Anschließend kopiert man per
cp Adressbuch.csv ~/Dokumente
die Datei in einen schon vorhanden sichtbaren Ordner (z. B. Dokumente). Dort kann die Datei nun gefunden werden und von jeglicher Anwendung (App), die Daten im CSV-Format verarbeiten kann, genutzt werden.
Schritt 8: (optional)¶
Die Adressdaten innerhalb der erzeugten Datei sind leider nicht alphabetisch sortiert, was aber meist erwünscht ist. Eine individuelle Sortierung (Beispiel: erst Nachname dann Vorname) kann wie folgt realisiert werden:
sed -n 1,1p Adressbuch.csv >Header.tmp tail -n +2 Adressbuch.csv >Adressbuch-1.tmp sort -t',' -k 24,24 -k 14,14 Adressbuch-1.tmp -o Adressbuch-2.tmp cat Header.tmp >Adressbuch.csv cat Adressbuch-2.tmp >>Adressbuch.csv
Durch den Befehl
mv Adressbuch.csv ~/Dokumente
wird die in Schritt 7 erzeugte, bisher nicht sortierte CSV-Datei, durch die nun individuell sortierte CSV-Datei ersetzt.
Schritt 9:¶
Die nicht mehr benötigten temporären Dateien und Ordner müssen zwingend gelöscht werden, da sonst die Schritte 4-7 und 9 oder 4-9 nicht erneut fehlerfrei durchgeführt werden können!
cd ~ rm ~/.local/share/applications/mork-converter-master/src/abook_save.mab* rm -r ~/.local/share/applications/mork-converter-master/src/Adressbuch
Links¶
Homepage Mork-Converter: https://github.com/KevinGoodsell/mork-converter