MacUser.de Community!  

  weitere Suchoptionen
Zurück   MacUser.de Community! > Mac OS > Mac OS X - UNIX

Adressbuch über das Terminal abfragen

Antwort
 
Themen-Optionen
Alt 07-02-2010, 11:48   #1 (permalink)
Neues MU Mitglied
 
Registriert seit: 11.2004
Beiträge: 21
Question Adressbuch über das Terminal abfragen

Ich möchte für die weitere Verarbeitung der Daten gerne bestimmte Einträge aus dem Adressbuch über das Terminal abfragen und als CSV-Datei abspeichern. Ich weiß, dass dies grundsätzlich mit dem Tool sqlite3 möglich ist.

Leider bin ich kein Experte in Sachen Datenbanken. Kann mir jemand sagen, wie ich mittels sqlite3 die Adressen (Name mit Postanschrift) aller Mitglieder einer bestimmten Gruppe, für die keine E-Mail-Adresse eingetragen ist, abfrage?

Geändert von SFAB (07-02-2010 um 11:54 Uhr).
SFAB ist offline   Mit Zitat antworten
Alt 08-02-2010, 13:56   #2 (permalink)
MU Mitglied
 
Registriert seit: 10.2008
Beiträge: 282
Am besten installierst Du SQLite Manager, ein PlugIn für Firefox und probierst ein bisschen mit der Adressdatenbank aus "~/Library/Application Support/AddressBook/AddressBook-v22.abcddb" herum. (Vorher natürlich ein Backup ziehen!) Die jeweiligen Daten aus den Tabellen werden immer verknüpft, um z.B. die Adressdaten einem Kontakt aus ZABCDRECORD zuzuordnen. Eine Verknüpfung über die Felder "z_pk" und "z_ent" scheint sich anzubieten:

Ein erster SELECT heißt dann:
Code:
SELECT zfirstname, zlastname, zstreet, zzipcode, zcity 
  FROM zabcdrecord AS rec 
    JOIN zabcdpostaladdress AS postal ON (
                     rec.z_pk = postal.zowner and
                     rec.z_ent = postal.z19_owner);
Sicherlich stellst Du fest, daß nur die Kontakte mit gepflegter Adresse ausgegeben werden. Abhilfe schafft ein sog. "Outer Join": es wird jeder Kontakt ausgegeben, wenn vorhanden mit Adresse:
Code:
SELECT zfirstname, zlastname, zstreet, zzipcode, zcity 
  FROM zabcdrecord AS rec 
    LEFT OUTER JOIN zabcdpostaladdress AS postal ON (
                     rec.z_pk = postal.zowner and
                     rec.z_ent = postal.z19_owner);
Nun basteln wir noch analog dazu die email-Adresse und fragen im WHERE-Teil nur nach denen ohne email-adresse:
Code:
SELECT zfirstname, zlastname, zstreet, zzipcode, zcity, zaddress
  FROM zabcdrecord AS rec 
    LEFT OUTER JOIN zabcdpostaladdress AS postal ON (
                     rec.z_pk = postal.zowner and
                     rec.z_ent = postal.z19_owner)
    LEFT OUTER JOIN zabcdemailaddress AS email ON (
                     rec.z_pk = email.zowner and
                     rec.z_ent = email.z19_owner) 
WHERE zaddress is null;
Den ganzen Kram kann man auch in ein shellscript packen:
Code:
echo ".mode csv 
SELECT zfirstname, zlastname, zstreet, zzipcode, zcity, zaddress
  FROM zabcdrecord AS rec 
    LEFT OUTER JOIN zabcdpostaladdress AS postal ON (
                     rec.z_pk = postal.zowner and
                     rec.z_ent = postal.z19_owner)
    LEFT OUTER JOIN zabcdemailaddress AS email ON (
                     rec.z_pk = email.zowner and
                     rec.z_ent = email.z19_owner) 
WHERE zaddress is null;" |
 sqlite3 ~/Library/Application\ Support/AddressBook/AddressBook-v22.abcddb
SQL ist halt eine komplette Sprache und SQLite3 bietet eine ziemlich vollständige Implementation davon. Du wirst ein bisschen lesen müssen; meine kleinen Beispiele helfen aber hoffentlich schon mal für den ersten Einstieg.

Viel Spaß!
Goglo ist offline   Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Goglo für den nützlichen Beitrag:
Alt 09-02-2010, 15:46   #3 (permalink)
Neues MU Mitglied
 
Registriert seit: 11.2004
Beiträge: 21

Themenautor/in
Vielen Dank für deine ausführliche Antwort! Das ist genau die Starthilfe, auf die ich gehofft hatte!
SFAB ist offline   Mit Zitat antworten
Antwort

Adressbuch über das Terminal abfragen


Lesezeichen

Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie? Vom MAc über iPhone SMS verschicken? Am besten über Adressbuch. ThiloKA Mac Os X iApps 10 28-12-2009 14:33
mal Mails abfragen über GPRS und o2 ohne Internet-Zusatzvertrag henk_honk iPhone & iPod Touch Allgemein 3 01-06-2008 22:26
Adressbuch per Applescript abfragen? xomox Mac OS X Entwickler / Programmierer 4 02-01-2005 09:02
Restlicher HD Platz über Terminal bzw. ssh abfragen balufreak Utilities und Treiber 4 06-07-2004 13:13
Infos über aktuellen Song abfragen von iTunes ulkbold Multimedia 4 20-07-2002 19:46

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.


Hilfe? MacUser.de Übersicht


Impressum | Werbung bei MacUser.de
MacUser.de © 2001-2009. All rights reserved

MacUser.de Hosted by
  hosteurope