1 votos

Purgar la información de los contactos en el Mac

El mes pasado, para un evento temporal, he añadido un número polaco (prefijo +48) a 800 de mis contactos habituales utilizando un archivo vCard.

Ahora, este evento ha terminado y ahora me gustaría eliminar todos esos números temporales de polaco de mis contactos y mantener toda la otra información intacta.

¿Hay alguna forma de hacerlo fácilmente, por ejemplo, mediante una acción de Automator?

1voto

user3439894 Puntos 5883

He borrado mi respuesta original porque en un principio entendí mal cómo el +48 Se han añadido números, lo siento.

En lugar de utilizar AppleScript, voy a ofrecerte una solución diferente porque, aunque podría modificar el AppleScript original y lo hice código para borrar todo el número que tenía un +48 prefijo, sin embargo hubo errores que detuvieron el script de ejecutarse completamente durante la fase de prueba. Así que estoy optando por una solución diferente a la depuración del AppleScript código .

Esta solución requiere exportar todo el contenido de Contacts.app a un archivo vCard (.vcf), modificándolo mediante un RegEx en sed y luego importar el archivo vCard modificado (.vcf) de nuevo a Contactos. Tenga en cuenta que este método reemplazará todos los contactos existentes con el nuevo allcontacts.vcf y no debería ser un problema, ya que en realidad sólo está eliminando la información que usted declaró que quería eliminar, sólo que de una manera indirecta.

NOTA: Estas instrucciones se probaron en OS X 10.11.5 con la aplicación Contacts.app utilizando su por defecto preferencias.

  • Contactos abiertos.

  • Copia de seguridad de los contactos, haga clic en: Archivo > Exportar > Archivo de contactos

Ahora que los contactos han sido respaldados, haz lo siguiente...

  • Seleccione el primer contacto y pulse commandA para seleccionar todos los contactos.

  • Haga clic: Archivo > Exportar > Exportar vCard

  • En el cuadro de diálogo Guardar como aparecerá como, el nombre del primer contacto y n otros ,
    cámbialo por: allcontacts

  • Copie y pegue lo siguiente comando en el Terminal, luego presione la barra espaciadora para agregar un espacio después.

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

  • Desde el Finder, arrastre y suelte el allcontacts.vcf en la ventana del Terminal. Tenga en cuenta que en Finder, el .vcf la extensión puede estar oculta y se mostrará en el Terminal.

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

  • Ahora pulse enter para modificar el allcontacts.vcf archivo. Se crea una copia de seguridad del original como: allcontacts.vcf.bak

Ahora importa la versión actualizada de allcontacts.vcf en los contactos.

  • Archivo > Importar y seleccionar el allcontacts.vcf y, a continuación, haga clic en Abrir.

  • En el apartado "¿Está seguro de que quiere importar n tarjetas?" hoja clic: Revisar duplicados

  • En el siguiente hoja seleccione Mantener nuevo y marque la casilla Aplicar a todos y luego haga clic en Importar.

Las entradas de teléfono de los contactos que contienen números con un +48 se ha eliminado el prefijo.


Las líneas de destino en el allcontacts.vcf tendrá el siguiente patrón y nótese que el ejemplo de abajo no es la única forma en que se puede presentar y por eso la necesidad de usar un RegEx aparte de que los números de teléfono en sí son diferentes ya que el valor para type= también puede variar.

Línea de ejemplo en el archivo vCard: TEL;type=CELL;type=VOICE:+48 697 107 394

El RegEx es: ^TEL.*\+48.*$

Explicación:

  • ^ afirmar la posición al inicio de la cadena.
  • TEL coincide con los caracteres TEL literalmente (distingue entre mayúsculas y minúsculas).
  • .* coincide con cualquier carácter (excepto la nueva línea). Cuantificador: * Entre cero y un número ilimitado de veces, tantas veces como sea posible, devolviendo lo necesario [codicioso].
  • \N - coincide con el carácter + literalmente.
  • 48 coincide con los caracteres 48 literalmente.
  • .* coincide con cualquier carácter (excepto la nueva línea). Cuantificador: * Entre cero y un número ilimitado de veces, tantas veces como sea posible, devolviendo lo necesario [codicioso].
  • $ afirmar la posición al final de la cadena.

Por lo tanto, el sed comando , sed -i.bak -E '/^TEL.*\+48.*$/d' file hace una copia de seguridad de la archivo ( -i.bak ) y borra cualquier línea que empiece por TEL que contiene +48 . Que basado en cómo se almacenan las líneas en la vCard sólo eliminará las líneas necesarias para realizar la tarea como las líneas que comienzan con TEL que tienen +48 en ellos sólo pueden estar las líneas que quieres eliminar.

NOTA: El también supone que no tenía previamente ningún número con el +48 antes de actualizar sus contactos con el archivo vCard original que contenía los números con el +48 prefijo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X