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.
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.