ubuntuusers.de

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

Diese Revision wurde am 17. Januar 2018 18:08 von Bourness erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Howto