Contacts.app Befehlszeilenschnittstelle

2

Gibt es ein CLI-Front-End für die Contacts.app-Datenbank (ehemals Address Book.app)?

Beispiel:

mycontacts --email '*@google.com' # to get Googlers
Robottinosino
quelle

Antworten:

3

Das, was einer generischen Lösung am nächsten kommt, ist der contactsBefehl von Shane Celis, der unter http://gnufoo.org/contacts/ verfügbar ist . Dies ist auch als Paket in Homebrew verfügbar , das installiert werden kann mit:$ brew install contacts

Es gibt andere Optionen, die möglicherweise auch für Sie funktionieren. Kontakte speichern nur Informationen in einer SQLite-Datenbank, sodass Sie mit dem SQLite-Befehl darauf zugreifen können. Sie können ein benutzerdefiniertes Skript erstellen , um eine bestimmte Aufgabe auszuführen, wenn Sie möchten.

Scott Stevenson hatte ein Tool namens abtool up, das für eine Weile populär war, aber es scheint jetzt eine tote Verbindung zu sein. Sie können auch versuchen , einige der Sachen auf GitHub zu durchsuchen . Insbesondere, da die App von Shane Celis nicht gewartet zu sein scheint (obwohl sie immer noch gut funktioniert), gibt es einige, die Ersatz bauen .

Aaron Massey
quelle
2

Contacts unterstützt AppleScript weiterhin. Sie können die Dokumentation der unterstützten Eigenschaften und Befehle anzeigen, indem Sie das zugehörige Wörterbuch im AppleScript-Editor öffnen.

osascript -e 'tell app "Contacts" to properties of people where vcard contains "@gmail.com"'

Ich habe keine Möglichkeit gefunden, die tatsächlichen E-Mail-Felder mit einem einzigen Bezeichner zu überprüfen.

set l to {}
tell application "Contacts"
    repeat with p in people
        repeat with e in (get value of emails of p)
            if contents of e ends with "@gmail.com" then set end of l to name of p
        end repeat
    end repeat
end tell
l
Lri
quelle
Danke, Upvoting, denn es ist eine Lösung für die von mir angeforderte Abfrage, aber keine generische Lösung, daher werde ich sie noch nicht akzeptieren.
Robottinosino