Letzten Monat habe ich für ein vorübergehendes Ereignis mithilfe einer vCard-Datei eine polnische Nummer (+48 Präfix) zu 800 meiner regelmäßigen Kontakte hinzugefügt.
Jetzt ist diese Veranstaltung vorbei und jetzt möchte ich all diese temporären polnischen Nummern aus meinen Kontakten entfernen und alle anderen Informationen intakt lassen.
Gibt es eine Möglichkeit, dies beispielsweise mit einer Automator-Aktion einfach zu tun?
Ich habe meine ursprüngliche Antwort gelöscht, weil ich anfangs falsch verstanden habe, wie die +48
Zahlen hinzugefügt wurden, tut mir leid.
Anstatt AppleScript zu verwenden, biete ich Ihnen eine andere Lösung an, denn obwohl ich den ursprünglichen AppleScript- Code ändern konnte und tat , um die gesamte Nummer mit einem +48
Präfix zu löschen, gab es dennoch Fehler, die die vollständige Ausführung des Skripts während des Tests verhinderten Phase. Daher entscheide ich mich für eine andere Lösung als das Debuggen des AppleScript- Codes .
Diese Lösung erfordert das Exportieren des gesamten Inhalts der Contacts.app in eine vCard-Datei (.vcf), das Ändern mit einem RegEx in sed
, und das anschließende Importieren der geänderten vCard-Datei (.vcf) zurück in Kontakte. Beachten Sie, dass diese Methode alle vorhandenen Kontakte durch die aktualisierte neue allcontacts.vcf- Datei ersetzt und kein Problem darstellen sollte, da sie wirklich nur die Informationen entfernt, von denen Sie angegeben haben, dass Sie sie entfernen möchten, nur auf Umwegen.
HINWEIS: Diese Wegbeschreibungen wurden unter OS X 10.11.5 mit der Contacts.app unter Verwendung ihrer Standardeinstellungen getestet .
Kontakte öffnen.
Kontakte sichern, klicken Sie auf: Datei > Exportieren > Kontakte archivieren…
Nachdem die Kontakte gesichert wurden, gehen Sie wie folgt vor...
Wählen Sie den ersten Kontakt und drücken Sie dann , commandAum alle Kontakte auszuwählen.
Klicken Sie auf: Datei > Exportieren > vCard exportieren…
Im Dialogfeld Speichern unter wird es angezeigt als, der Name des ersten Kontakts und n weiterer ,
ändern Sie ihn in: alle Kontakte
Kopieren Sie den folgenden Befehl und fügen Sie ihn in das Terminal ein. Drücken Sie dann die Leertaste, um anschließend ein Leerzeichen hinzuzufügen .
sed -i.bak -E '/^TEL.*\+48.*$/d'
Ziehen Sie aus dem Finder die Datei allcontacts.vcf in das Terminalfenster und legen Sie sie dort ab. Beachten Sie, dass die Erweiterung .vcf im Finder möglicherweise ausgeblendet ist und im Terminal angezeigt wird.
Beispiel:sed -i.bak -E '/^TEL.*\+48.*$/d' /Users/me/Documents/allcontacts.vcf
Importieren Sie nun die aktualisierte allcontacts.vcf- Datei in Kontakte.
Datei > Importieren und wählen Sie die Datei allcontacts.vcf aus und klicken Sie dann auf Öffnen.
Auf der Seite "Möchten Sie wirklich n Karten importieren?" Blattklick : Duplikate überprüfen…
Wählen Sie auf dem folgenden Blatt „Neu behalten“ und aktivieren Sie das Kontrollkästchen „Auf alle anwenden“ und klicken Sie dann auf „Importieren“.
Die Telefoneinträge der Kontakte, die Nummern mit +48
Vorwahl enthalten, wurden entfernt.
Die Zielzeilen in der Datei allcontacts.vcf haben das folgende Muster und beachten Sie, dass das folgende Beispiel nicht die einzige Möglichkeit ist, wie es dargestellt werden kann, und daher die Notwendigkeit, einen RegEx zu verwenden, abgesehen davon, dass die Telefonnummern selbst unterschiedlich sind, da der Wert für auch variieren type=
kann .
Beispielzeile in der vCard-Datei:TEL;type=CELL;type=VOICE:+48 697 107 394
Der RegEx lautet:^TEL.*\+48.*$
Erläuterung:
sed
Der Befehlsed -i.bak -E '/^TEL.*\+48.*$/d' file
sichert also die Datei ( -i.bak
) und löscht jede Zeile, die mit beginnt und die TEL
enthält +48
. Je nachdem, wie Zeilen in der vCard gespeichert sind, werden nur die Zeilen entfernt, die zum Ausführen der Aufgabe erforderlich sind, da Zeilen, die mit beginnen, TEL
nur +48
die Zeilen enthalten können, die Sie entfernen möchten.
HINWEIS: Es wird auch davon ausgegangen, dass Sie zuvor keine Nummern mit dem +48
Präfix hatten, bevor Sie Ihre Kontakte mit der ursprünglichen vCard-Datei aktualisiert haben, die die Nummern mit dem +48
Präfix enthielt.
+48
Vorwahl entfernen, sondern die gesamte Nummer. Ich möchte nur die +48-Nummern aus meinen Kontakten löschen.
Benutzer3439894
+481234567890
oder was in der vCard?LuCouto