• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Evolution und vCard

Status
Für weitere Antworten geschlossen.

bimhead

Member
Meine letzten Überresten aus Kontact sind meine vCard (*.vcf) Kontakte, die alle in einem Ordner liegen.
Ich möchte die vCards in Evolution nutzen, kann über die Importfunktion nur eine vCard auf einmal importieren (das dauert ewig). Kann ich meinen Ordner mit den vCards irgendwie in das Adressbuch von Evolution importieren oder verknüpfen, um die Kontakte nutzen zu können?
 

joka

Member
bimhead schrieb:
Meine letzten Überresten aus Kontact sind meine vCard (*.vcf) Kontakte, die alle in einem Ordner liegen.
Ich möchte die vCards in Evolution nutzen, kann über die Importfunktion nur eine vCard auf einmal importieren (das dauert ewig). Kann ich meinen Ordner mit den vCards irgendwie in das Adressbuch von Evolution importieren oder verknüpfen, um die Kontakte nutzen zu können?
Eine vcf-Datei darf auch eine Liste von Kontakten enthalten.
Also einfach mit
Code:
cat *.vcf > Alle-Kmail-Kontakte.vcf
eine große vCard-Datei erzeugen und diese dann in Evolution importieren.
 

joka

Member
Wenn man ein Skript oder Tool hat, dass Adresslisten im csv-Format ins vCard-Format konvertieren kann, dann kann man analog diese Adressen in Evolution importieren.

Für Outlook Express 6 (deutsch) habe ich mir folgendes TCL-Skript csv2vcf geschrieben, um die exportierten csv-Adressen in eine vCard-Datei zu konvertieren, die von Evolution dann importiert werden kann:
Code:
#!/usr/bin/tclsh
## Aufruf: csv2vcf <Adressen.csv >Adressen.vcf 
## csv2vcf liest von Standardeingabe und schreibt nach Standardausgabe
set VCardTemplate \
{BEGIN:VCARD
VERSION:3.0
ORG:$F(Firma);$F(Abteilung);$F(Büro)
NICKNAME:$F(Rufname)
NOTE:$F(Kommentare)
FN:$F(Name)
N:$F(Nachname);$F(Vorname);${F(2. Vorname)};;
EMAIL;TYPE=HOME:${F(E-Mail-Adresse)}
TEL;TYPE=WORK;TYPE=VOICE:${F(Rufnummer (geschäftlich))}
TEL;TYPE=HOME;TYPE=VOICE:${F(Rufnummer (privat))}
TEL;TYPE=WORK;TYPE=FAX:${F(Fax (geschäftlich))}
TEL;TYPE=HOME;TYPE=FAX:${F(Fax (privat))}
TEL;TYPE=CELL:$F(Mobiltelefon)
TEL;TYPE=PAGER:$F(Pager)
ADR;TYPE=WORK:;;${F(Straße (geschäftlich))};${F(Ort (geschäftlich))};${F(Bundesland (geschäftlich))};${F(Postleitzahl (geschäftlich))};${F(Land/Region (privat))}
ADR;TYPE=HOME:;;${F(Straße (privat))};${F(Ort (privat))};${F(Bundesland (privat))};${F(Postleitzahl (privat))};${F(Land/Region (privat))}
END:VCARD}

set LHeaders [split [gets stdin] ";"]
set NCols [llength $LHeaders]
for {set i 0} {$i < $NCols} {incr i} {
  set FName($i) [lindex $LHeaders $i]
}
while { ![eof stdin] } {
  set LValues [split [gets stdin] ";"]
  if { [regexp "\"" $LValues] } { exit 1 }
  if { [llength $LValues] < $NCols } { break }
  for {set i 0} {$i < $NCols} {incr i} {
    set F($FName($i)) [lindex $LValues $i]
  }
  puts [subst $VCardTemplate]
}
Die erste Anweisung definiert eine Art vCard-Schablone, die Adress-Felder werden darin mit $F(Feldname) oder ${F(Feldname)} entsprechend den Spalten-Überschriften (= 1. Zeile in der csv-Datei) bezeichnet. $F(Name) oder ${F(Name)} ist die Tcl-Syntax für assoziative Arrays. Damit sollte man das Skript leicht an andere csv-Formate anpassen können.

Hinweis: dieses einfache Skript kann keine Felder mit Sonderzeichen (d.h. " ; Zeilenumbrüche) parsen, die in ".." eingeschlossen werden müssen.
 
OP
bimhead

bimhead

Member
Hey danke joka, das Zusammenkopieren und das anschließende Importieren hat einwandfrei geklappt!

Vielen Dank für den Tipp :)
 
Status
Für weitere Antworten geschlossen.
Oben