1 votes

Purger les informations sur les contacts sur Mac

Le mois dernier, pour un événement temporaire, j'ai ajouté un numéro polonais (préfixe +48) à 800 de mes contacts habituels en utilisant un fichier vCard.

Maintenant, cet événement est terminé et j'aimerais supprimer tous ces numéros polonais temporaires de mes contacts et garder toutes les autres informations intactes.

Existe-t-il un moyen de le faire facilement, par exemple en utilisant une action Automator ?

1voto

user3439894 Points 52496

J'ai supprimé ma réponse initiale parce que j'avais mal compris comment le système de gestion de l'information de l'UE était utilisé. +48 Les chiffres ont été ajoutés, désolé.

Au lieu d'utiliser AppleScript, je vais vous proposer une solution différente, car si j'ai pu modifier l'AppleScript d'origine, ce que j'ai fait, je l'ai fait. code pour supprimer le numéro entier qui avait un +48 Néanmoins, des erreurs sont survenues et ont arrêté l'opération. script de s'exécuter complètement pendant la phase de test. J'opte donc pour une solution différente plutôt que de déboguer l'AppleScript code .

Cette solution nécessite d'exporter l'ensemble du contenu de Contacts.app vers un fichier vCard (.vcf), de le modifier à l'aide d'une RegEx dans l'application sed et ensuite importer le fichier vCard modifié (.vcf) dans Contacts. Notez que cette méthode remplacera tous les contacts existants par le nouveau fichier vCard mis à jour. touscontacts.vcf et ne devrait pas poser de problème, car il ne fait que supprimer les informations que vous avez déclaré vouloir supprimer, mais de manière détournée.

REMARQUE : ces instructions ont été testées sous OS X 10.11.5 avec l'application Contacts.app en utilisant sa version de base. par défaut préférences.

  • Contacts ouverts.

  • Sauvegarde des contacts, cliquez : Fichier > Exporter > Archive des contacts

Maintenant que les contacts ont été sauvegardés, procédez comme suit...

  • Sélectionnez le premier contact, puis appuyez sur commandA pour sélectionner tous les contacts.

  • Cliquez : Fichier > Exporter > Exporter vCard

  • Dans la boîte de dialogue Enregistrer sous, il apparaîtra sous la forme suivante, le nom du premier contact et n autres ,
    le changer en : allcontacts

  • Copiez et collez les éléments suivants commande dans le Terminal, puis appuyez sur la barre d'espace pour ajouter un espace après.

    sed -i.bak -E '/^TEL.*\+48.*$/d'

  • Dans le Finder, faites glisser et déposez le touscontacts.vcf dans la fenêtre du terminal. Notez que dans le Finder, l'icône .vcf peut être cachée et elle s'affichera dans le terminal.

Exemple : sed -i.bak -E '/^TEL.*\+48.*$/d' /Users/me/Documents/allcontacts.vcf

  • Maintenant, appuyez sur enter pour modifier le touscontacts.vcf dossier. Une sauvegarde de l'original est créée en tant que : touscontacts.vcf.bak

Importez maintenant la mise à jour touscontacts.vcf dans les contacts.

  • Fichier > Importation et sélectionnez le touscontacts.vcf puis cliquez sur Ouvrir.

  • Sur la page "Êtes-vous sûr de vouloir importer n cartes ?" feuille cliquez : Examiner les doublons

  • Sur l'action suivante feuille sélectionnez Garder le nouveau et cochez la case Appliquer à tous puis cliquez sur Importer.

Les entrées téléphoniques du répertoire contenant des numéros avec un +48 ont été supprimés.


Les lignes cibles dans le touscontacts.vcf aura le modèle suivant et notez que l'exemple ci-dessous n'est pas la seule façon dont il peut se présenter et donc la nécessité d'utiliser un RegEx en dehors des numéros de téléphone eux-mêmes étant différents comme le fichier valeur pour type= peut également varier.

Exemple de ligne dans le fichier vCard : TEL;type=CELL;type=VOICE:+48 697 107 394

Le RegEx est : ^TEL.*\+48.*$

Explication :

  • ^ assert position at the start of the string.
  • TEL correspond aux caractères TEL littéralement (sensible à la casse).
  • .* correspond à n'importe quel caractère (sauf le saut de ligne). Quantificateur : * Entre zéro et un nombre illimité de fois, autant de fois que possible, en rendant ce qui est nécessaire [gourmand].
  • \+ correspond au caractère + littéralement.
  • 48 correspond aux caractères 48 littéralement.
  • .* correspond à n'importe quel caractère (sauf le saut de ligne). Quantificateur : * Entre zéro et un nombre illimité de fois, autant de fois que possible, en rendant ce qui est nécessaire [gourmand].
  • $ assert position at end of the string.

Donc, le sed commande , sed -i.bak -E '/^TEL.*\+48.*$/d' file sauvegarde les fichier ( -i.bak ) et supprime toute ligne commençant par TEL qui contient +48 . Selon la façon dont les lignes sont stockées dans la vCard, les lignes nécessaires à l'accomplissement de la tâche seront supprimées car les lignes commençant par TEL qui ont +48 dans celles-ci ne peuvent être que les lignes que vous voulez supprimer.

NOTE : Il suppose également que vous n'aviez pas auparavant de numéros avec le +48 avant de mettre à jour vos contacts avec le fichier vCard original qui contenait les numéros avec le préfixe +48 préfixe.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X