Evolution: Adressbuch aus Backup wiederherstellen / konvertieren

Nachdem ich es geschafft hatte eines meiner Evolution Adressbücher zu löschen, war ich gezwungen ein einzelnes Adressbuch aus einer Sicherungskopie wiederherzustellen.

Jedes Evolution Adressbuch ist als eingenständiges Datenbankfile gespeichert. Bei der verwendeten Datenbank handelt es sich nicht etwa um sqLite sondern um eine Berkeley-Datenbank.

Zum Konvertieren und Importieren der Datenbank sind folgende drei Schritte erforderlich:

Schritt 1: Das Datenbankfile finden und kopieren

Das b.z.w. die Evolution Adressbücher nennen sich “addressbook.db” und befinden sich (wenn mehrere vorliegen) in verschiedenen Unterverzeichnissen. Ein nützlicher Befehl zum Suchen der Dateien nennt sich “locate” und kann aus den Quellen installiert werden. Mit seiner Hilfe suchen wir uns die Datei(en). Eine gepackte Sicherungskopie muss natürlich vor der Suche entpackt werden.

sudo apt-get install locate

locate addressbook.db

Die gefundene(n) Datei(en) kopieren wir in einen neuen Ordner. Liegen mehrere vor, müssen sie natürlich umbenannt werden. Danach können wir mit der Weiterverarbeitungen beginnen.

 

Schritt 2: Berkeley-Datenbank in ein Textfile konvertieren

Um das Datenbankfile weiter zu verarbeiten installieren wir das Paket db-utils und konvertieren sie in eine Textdatei.

sudo apt-get install db-util

db_dump addressbook.db -p > addressbook.txt

Die enstandene Datei “addressbook.txt” kann man sich mit einem Texteditor wie z.B. gedit anschauen. Dabei fällt allerdings auf, dass Sonderzeichen noch nicht korrekt dargestellt werden. Allerdings kann man an diesem Punkt schon feststellen, ob es sich um die richtige Datei handelt.

 

Schritt 3: Formatierungs- und Sonderzeichen konvertieren

Im letzten Schritt muss der Zeichensatz der Textdatei angepasst werden. Dies geschieht mit dem folgenden Befehl im Terminal, der einfach eingefügt (Im Terminal erfolgt das mit der Tastenkombination shift-ctrl-v bzw shift-strg-v) und mit der Eingabetaste bestätigt werden kann:

cat addressbook.txt | sed -e '9,$ !d' \
-e '/^ pas-id/d' \
-e 's/\\0d\\0a/\n/g' \
-e 's/\\\\, / /g' \
-e 's/^ //' -e 's/\\00//' \
-e 's/\\c3\\89/É/g' \
-e 's/\\c3\\8a/È/g' \
-e 's/\\c3\\a9/é/g' \
-e 's/\\c3\\a8/è/g' \
-e 's/\\c3\\aa/ê/g' \
-e 's/\\c3\\a0/à/g' \
-e 's/\\c3\\a1/á/g' \
-e 's/\\c3\\a2/â/g' \
-e 's/\\c3\\a7/ç/g' \
-e 's/\\c3\\b4/ô/g' \
-e 's/\\c3\\af/ï/g' \
-e 's/\\c3\\ab/ë/g' \
-e 's/\\c3\\9f/ß/g' \
-e 's/\\c3\\a4/ä/g' \
-e 's/\\c3\\84/Ä/g' \
-e 's/\\c3\\bc/ü/g' \
-e 's/\\c3\\9c/Ü/g' \
-e 's/\\c3\\b6/ö/g' \
-e 's/\\c3\\96/Ö/g' \
-e 's/\\\\n/;/g' \
> addressbook.vcf

Die so entstandene Datei “addressbook.vcf” sollte frei von Sonderzeichen einfach mit der “Datei importieren”-Funktion von Evolution oder anderen Programmen wie z.B. Outlook importiert werden können. Sollte ein Zeichen fehlen, kann man den Konvertierungsbefehl anhand einer Zeichensatztabelle ergänzen.

 

6 Kommentare zu „Evolution: Adressbuch aus Backup wiederherstellen / konvertieren

  1. Hallo,

    dies ist das zweite Mal, dass ich diesen Komentar abschicke. Die erste Sendung wurde vom System warscheinlich deshalb abgebrochen weil ich nicht durch anhaken bestätigt habe, dass ich ein Mensch bin.

    Falls der Kommentar doch schon beim ersten Mal angekommen sein sollte, bitte ich irgend einen verständnisvollen Menschen diesen zweiten Post zu löschen. Vielen Dank.

    Nun noch einmal

    Meine Evolution-Kontakte stammen ursprünglich aus MS-OUTLOOK, ich habe sie als vor längerer Zeit als einzelne Kontakte (CSV-Dateien) in Evolution übertragen. In den letzten Tagen habe ich nun versucht nach der vorliegenden ToDo-Anweisung die Evolution-Kontakte in eine VCF-Datei umzuwandeln.
    Erst einmal mußte ich das ToDo an mein System (Ubuntu 10.04 LTS) anpassen. So konnte ich z. B. nicht das Paket DB-Util installieren, es gibt dafür aber das Paket db4.8-util.
    Auch der SED-Befehl hat erst nach einigen Fehlversuchen das gemacht was ich erwartet habe. Ich habe jetzt also eine Datei addressbook.vcf.

    Damit begannen aber meine Verständnisprobleme mit der Datenbank addressbook.db.
    In der Textdatei fielen mir Adressteile auf die in der Kontaktansicht von Evolution gar nicht zu sehen sind.
    Um die Funktionsweise der Evolution-Datenbank zu studieren habe ich also eine Adresse in Evolution gezielt verändert. Sprich ich habe eine zusätzliche Postadresse in einen bestehenden Kontakt eingefügt.
    Erste Erkenntnis: Das Datum der letzten Änderung für die addressbook.db hat sich nicht geändert. Ich habe daraufhin Evolution beendet und den PC neu gestartet um zu sehen was dann passiert. Nach dem Neustart von Evolution war der hinzugefügte Adressteil in der Kontaktansicht immer noch vorhanden. In der addressbook.db fehlte aber immer noch dieser neue Adressteil.
    Nun frage ich mich wo dieser Teil abgelegt ist, bzw. wann der in der addressbook.db ankommt?
    Mit anderen Worten, ich bin nicht mehr sicher ob alle meine ca. 500 Kontakte komplett und vor allem korrekt in der VCF-Datei enthalten sind.
    Könnte mir deshalb vielleicht jemand die generelle Funktionsweise von Berkeley-Datenbanken im allgemeinen oder die Speicherung von Kontakten in Evolution im Speziellen, auch für Anfänger verständlich, erklären? Ich möchte mich schon jetzt dafür herzlich bedanken.

    Gruß
    Dietmar

    • Hallo,
      bist Du sicher, dass Du die richtige Datei erwischt hast?
      Evolution 3.2.3 speichert das Datum der letzten Änderung in den vcards so ab:
      REV:2012-01-02T09:13:26.
      Die Adresse wird abgespeichert als:
      ADR;TYPE=HOME:a;b;c;d; …
      (a,b,c,d sind die Daten)

      Gruß
      Thomas

  2. Hallo Thomas,
    entschuldige die späte Rückmeldung. Ich habe inzwischen noch mit vielen anderen Problemen in Linux zu kämpfen. Deshalb ist dieses Problem etwas verdrängt worden. Außerdem habe ich viele Kontaktdaten in Evolution händisch geändert.
    Dabei ist mir aber noch folgendes aufgefallen wofür ich noch keine Erklärung gefunden habe.
    In der Datei adressbook.db gibt es verschiedene Adressangaben.
    ADR;TYPE=HOME und
    ADR;TYPE=POSTAL
    In den POSTAL-Adressen tauchten bei einigen Adressen statt Umlauten unlesbare Steuerzeichen auf.
    Ich habe also versucht diese Zeichen in Evolution zu ändern. Leider konnte ich die “POSTAL”-Adressen nirgends in Evolution sehen und somit auch nicht ändern. Wenn ich die Zeichen in der Textdatei addressbook.vcf überschrieben habe konnte ich sie aber nicht mehr in Evolution importieren.
    Ich frage mich nun: Wie kann ich die POSTAL-Adresse in Evolution sichtbar/editierbar machen. Gefüllt wurden diese Adressen offensichtlich noch in OUTLOOK und werden auch von volution mitgeschleppt. Wie bekomme ich sie aber wieder aus der Addressbook.db heraus; denn möglicherweise importiere ich sie irgendwann in ein anders Programm ohne es zu wollen.
    Viele Grüße
    Dietmar

    • Hallo Dietmar,
      in Evolution gibt es WORK, HOME und OTHER.
      Am besten versuchst Du den Typ einfach mal in OTHER zu ändern, damut Du ihn (unter Postadresse, weitere) angezeigt bekommst. Kannst Du die Sonderzeichen unter http://www.utf8-zeichentabelle.de/ finden? Dann kannst Du Sie einfach ersetzen.
      Viele Grüße, Thomas

Schreibe einen Kommentar zu Thomas Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*